素数筛
Error Man
我是菜逼
展开
-
区间素数筛
给定整数a和b,请问区间[a,b)内有多少个素数?a<b<=10^12b-a<=10^6因为b以内合数的最小质因数一定不超过sqrt(b),如果有sqrt(b)以内的素数表的话,就可以把筛选法用在[a,b)上了,先分别做好[2,sqrt(b))的表和[a,b)的表,然后从[2,sqrt(b))的表中筛得素数的同时,也将其倍数从[a,b)的表中划去,最后剩下的就是区间...原创 2018-10-11 20:12:42 · 557 阅读 · 0 评论 -
求一个数的所有的质因子。
一个数的因子,一定有质因子组成,所有的质因子就可以代表这些因子cin >> x;vector<int> a;for(int j = 2; j <= sqrt(x); j++) { while(x % j == 0) { a.push_back(j); x /= j; }}if(x > 1) a...原创 2018-08-28 22:41:25 · 3893 阅读 · 1 评论 -
素数筛选,
const int MX = 1000000int mark[MX]={0};void init() { int Max = sqrt(MX + 0.5); //优化 for(int i = 2; i <= Max; i++) { if(mark[i]==1)continue; //优化,i的值可能在下列循环中出现过. for(i...原创 2018-07-25 13:51:27 · 180 阅读 · 0 评论