本文共 925 字,大约阅读时间需要 3 分钟。
素数筛法埃氏和线式的思想差不太多,都是采用事先打表的思想进行初始化,以供后面使用。
bool is_pri[N+5];void prime(){ for(int i=0;i<=N;i++) is_pri[i]=true; //is_pri[0] = false;//由于输入情况有可能小于2 is_pri[1] = true; for(int i = 2; i <= N; i ++){ if(is_pri[i]){ for(int j = 2*i; j <= N; j+=i) is_pri[j] = false; } }}
int pri[N+10];void prime(){ memset(pri, 0, sizeof(pri)); pri[1] = 0; //0表示素数 for(int i = 2; i <= N; i ++){ if(!pri[i]){ for(int j = i*i; j <= N; j += i) pri[j] = 1; } }}
int m, pri[max];void prime(int n){ int i, j; memset(pri, 0, sizeof(pri)); for( i = 2; i <= n; i ++){ for( j = 2; j <= sqrt(i); j ++){ if(i%j == 0) break; } if(j > sqrt(i)) pri[m++] = i; }}
int m, pri[max];void prime(int n){ int i, j; memset(pri, 0, sizeof(pri)); for( i = 2; i <= n; i ++){ for( j = 2; j <= sqrt(i); j ++){ if(i%j == 0) break; } if(j > sqrt(i)) pri[m++] = i; }}
转载地址:http://jbfe.baihongyu.com/