2019年3月20日训练日记

数论做自闭了。。。

1、n!末尾有多少0,看包含多少个5就行。然后对5的i次方分层,累加每一层5的个数。

2、n的因数个数为 分解质数之后(每个质数的幂数+1)的积。不要忘了可能是一个大质数。如果求因数对,则直接除2就可以了。

3、求1~n内有多少个数的因数和为偶数,打表发现答案为n-sqrt(n)-sqrt(n/2)

4、求n的k次方在10进制下的前y位数:

a=(double)k*log10(n);
a-=floor(a);
a=pow(10,a);
ans=a*power(10,y-1);

5、求i从1到n n/i向下取整的和:除法分块。

有结论:1到n的所有数的因数的和等于n/i向下取整*i的和,同样除法分块。

6、n能分解的x的p次方形式的最大的p:正数为分解质数之后(每个质数的个数)的gcd。负数若为偶数答案同整数,否则一直除2直到变成奇数。

7、结论:m重for循环每次循环i1,i2,...,im 从 1~n加对应下标的数组的和mod k,答案为sum*m%k*power(n,m-1,k)%k;

8、求区间[a,b](b-a<=1e5,a,b<=1e14)内的素数个数:筛1~sqrt(b)的素数,每个i去掉[a,b]中i的倍数。

9、注意long long 和unsigned long long。

10、斯特林公式:求n在m进制下的位数:

double e=exp(1);

ans=0.5*log10(2.0*pi*n)/log10(m)+n*log10(n/e)/log10(m)+1;

11、线段(a,b)_(c,d)上的整点个数:gcd(c-a,d-b)。

猜你喜欢

转载自blog.csdn.net/LSD20164388/article/details/88696346
今日推荐