素数筛 今天让张神帮我看写了个素数筛,大神就是大神不多说 直接上代码!
#include <iostream> #include <cstdio> #include <cstdlib> #include <string> #include <cmath> #include <cstring> #include <algorithm> using namespace std; bool pre_arry[1100]; void pre_cnt() { memset(pre_arry,1,sizeof(pre_arry)); pre_arry[1] = 0; for(int i = 2; i <= 1000; ++i) { if(pre_arry[i]){ for(int j = i+i; j <= 1000; j+=i) pre_arry[j] = 0; } } } void doit(int n) { int sum = 0,m; for(int i = 0; i <n; ++i) { scanf("%d",&m); if(pre_arry[m]) sum += m; } printf("%d\n",sum); } int main() { int n,m,result; pre_cnt(); scanf("%d",&m); for(int kase = 1; kase <= m; ++kase) { scanf("%d",&n); doit(n); } return 0; }
任何一个数要么是素数,要么是一个数的倍数,所以,就有以上的素数筛!
算法 入门 2014-4-25 运行号:837134,布布扣,bubuko.com
原文:http://www.cnblogs.com/chdxiaoming/p/3690203.html