/* 2 |埃式筛法| 3 |快速筛选素数| |15-7-26| 4 */ #include <iostream> #include <cstdio> using namespace std; const int SIZE = 1e7; int prime[SIZE]; // 第i个素数 bool ...
分类:
其他好文 时间:
2017-04-16 21:24:18
阅读次数:
151
埃氏筛法,理解起来很好理解,就是在1~n这n个连续的数里面开始筛出合数,知道剩下全部为素数,大致流程如下: 第一步:能够确定1不是素数,所以将1筛出,剩下从2开始的数列 第二步:找到2为第一个素数,那么遍历这个数列,将2的倍数筛出,形成一个新的数列 第三步:找到下一个素数 x,此时 x = 3,那么 ...
分类:
其他好文 时间:
2017-04-15 20:29:18
阅读次数:
140
关于素数,有埃氏筛法O(nloglogn),不过有更优的线性筛法,此线性筛法还可用于筛欧拉函数与莫比乌斯函数,作用很大 ...
分类:
其他好文 时间:
2017-04-14 15:44:34
阅读次数:
207
POj3292 Semi-prime H-numbers 埃氏筛法+暴力打表 先打H-prime的表,每找到一个H-prime,将其倍数筛掉, 这里可以剪枝,只需要筛掉类似4n+1这种数,若i是H-prime,只需要筛掉5i,9i,...(4k+1)i, (k=1,2,3,4,5...) 证明如下, ...
分类:
其他好文 时间:
2016-03-31 12:27:48
阅读次数:
209
[2016-01-28][数学][][]判断一个数是否是素数,除了1和它本身之外都没因子朴素方法:从2开始检查到根号n,埃氏筛法,从一个2开始到n,,如果一个数是素数,那么从a*a开始去除1-n中a 的所有倍数线性筛每个合数都有最小的素因子,让每个合数只被最小的素因子筛掉从2开始,如果一个数a是素数...
分类:
其他好文 时间:
2016-02-09 01:20:15
阅读次数:
209
埃式筛法:给定一个正整数n(nusing namespace std;bool pri[1000000+10];bool ispri[10000000+10];//ispri[i-a]=true代表i是素数void getpri(){ memset(pri,true,sizeof(pri));...
分类:
其他好文 时间:
2016-01-25 16:55:43
阅读次数:
179
其原理就是先将2-n之内的所有数存在一个数组里,初始化所有数全为素数,然后从2开始寻找,只要标记是素数便将他的所有倍数的标记都改为合数,依次类推。时间复杂度为O(nloglogn)。代码实现1 void prime_table()2 {3 for(int i=2;(LL)i<=n;i++) ...
分类:
其他好文 时间:
2016-01-25 12:48:46
阅读次数:
126
从上周五学数论以后就开始堕落了看了三四集MIT线代,看完白书埃氏筛法做不出来无平方因子周六模拟赛差点爆零 其实题并不难 但是暴露了很多问题chess深搜没掌握精华 八皇后问题还得再仔细学 思想核心是最重要的 否则不会变通escape受思维定势影响 找了一种最复杂的错方法周一早上一直学HTML5和CS...
分类:
其他好文 时间:
2015-11-30 17:30:58
阅读次数:
136
问题:求[L, R]之间的素数表解法:先用埃氏筛法求出[1...sqrt(R)]上的素数表再在[L, R]上用埃氏筛法求素数const int N(1e5);bool isprime[N];int prime[N];void init(){ memset(isprime, -1, sizeof...
分类:
其他好文 时间:
2015-09-13 18:32:09
阅读次数:
125