// 代码待添加 GCD求最大公约数 扩展GCD求ax + by = c 的解以及判断是否有解 -- 当c为gcd(a,b)的倍数 Eratosthenes's sieve 埃氏筛选法求素数 筛选法求1~n欧拉函数值 -- 与埃氏筛选法一样,如果一个数j是i的倍数,那么其欧拉函数值就phi[j] = ...
分类:
其他好文 时间:
2017-08-21 20:39:26
阅读次数:
132
质数(素数):指大于1的所有自然数中,除了1和自身,不能被其它自然数整除的数 合数:比1大,但不是素数的数称为合数,合数除了被1和自身整除,还能被其它数整除 质因数(素因数或质因子):能整除给定正整数的质数,除1以外,两个没有其它共同质因子的正整数称为互质 1和0既非素数又非合数 素数筛法原理:素数 ...
分类:
其他好文 时间:
2017-08-19 11:12:25
阅读次数:
162
传送门 数据辣么大,怎么搞?(L≤R≤2147483647) 注意到R-L≤1000000 所以可以直接筛R-L区间内的数, 但是需要用已知的小的素数筛, R-L区间内的大部分数肯定能用较小的素数筛去,但是还有一些较大的数,可能等于两个大质数的乘积,没法被筛去。 但是又注意到,数据最大才10位,也就 ...
分类:
其他好文 时间:
2017-08-14 20:15:34
阅读次数:
201
一、埃式筛法 埃式筛法的核心思想是从2到n枚举,当我们找到一个质数时,枚举它所有的倍数,因为这些倍数都不可能是质数。 时间复杂度是O(n log log n) 如果无论质数合数,每次都去找倍数的话,复杂度会退化成O(n|n n) 二、欧拉筛(线性筛) 欧拉筛的核心思想是通过让每个数只会被它的最小的质 ...
分类:
其他好文 时间:
2017-08-14 16:22:20
阅读次数:
157
Counting Divisors Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 3041 Accepted Submission(s): ...
分类:
其他好文 时间:
2017-08-09 13:44:44
阅读次数:
167
#include <stdio.h> int main() { int i,j,a[505]={0}; for(i=1;i<=500;i++) a[i]=1; for(i=2;i<=500;i++) if(a[i]) for(j=i+i;j<=500;j+=i) a[j]=0; for(i=2;i< ...
分类:
其他好文 时间:
2017-08-06 19:37:19
阅读次数:
94
思路:对于n^k其实就是每个因子的个数乘了一个K。然后现在就变成了求每个数的每个质因子有多少个,但是比赛的时候只想到sqrt(n)的分解方法,总复杂度爆炸,就一直没过去,然后赛后看官方题解感觉好妙啊!通过类似素数筛法的方式,把L - R的质因子给分解,就可以在O(nlogn)的时间之内把所以的数给筛 ...
分类:
其他好文 时间:
2017-08-05 21:09:02
阅读次数:
104
利用素数筛选法进行素数的快速查找。 原理很简单,素数一定是奇数,素数的倍数一定不是素数。 ...
分类:
其他好文 时间:
2017-08-04 21:28:38
阅读次数:
87
这是一道区间素数筛的题目,首先线性筛出1e6的素数,然后用每一个素数对区间内的数进行素数分解 公式:求某个数的因子个数,先进行素数分解x=p1^z1*p2^z2*p3^z3; 然后 sum=(z1+1)*(z2+1)*(z3+1); 1 #include <cstdio> 2 typedef lon ...
分类:
其他好文 时间:
2017-08-04 13:58:03
阅读次数:
209
题意:输入两个数m,n求最大的整数K使得m^k是n!的约数 题解:将m分解,m = p1^a1*p2^a2*p3^a3.... n!也分解,一个一个分解太慢,素数筛可以快一点,二分K就可以了 ...
分类:
其他好文 时间:
2017-08-04 00:28:01
阅读次数:
148