筛选素数
//发现了一种写起来方便的素数筛选法、速度也够快 //比用sqrt写函数判断快噢 #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #define N 1000000 using namespace std; bool hash[N]; int main() { int i,j=0; for(j=4;j<N;j+=2) hash[j]=1; for(i=3;i<1000;i+=2) if(!hash[i])//在这里面就可以直接收集素数放在数组里面了 for(j=i*i;j<N;j+=i) hash[j]=1; for(j=1,i=3;i<N;i+=2) if(!hash[i]) j++; printf("%d\n",j); return 0; } 来源: https://www.cnblogs.com/372465774y/archive/2012/07/23/2604835.html