标签:
Description
Input
Output
Sample Input
2 3 17 41 20 666 12 53 0
Sample Output
1 1 2 3 0 0 1 2
/*/ 题意:
求连续素数和.
有多少种方法可以选取连续的素数,使这些数的和正好为n 思路:
1到10000的素数表打出来,然后直接尺取就可以了,很简单的一道题目。 /*/
#include"map" #include"cmath" #include"string" #include"cstdio" #include"vector" #include"cstring" #include"iostream" #include"algorithm" using namespace std; typedef long long LL; const int MX=1000005; #define memset(x,y) memset(x,y,sizeof(x)) #define FK(x) cout<<"【"<<x<<"】"<<endl int vis[MX]; int prim[MX]; int ans[MX]; int main() { int n,len=0,sum=0; for(int i=2; i<=100; i++) if(!vis[i]) for(int j=2; j<=10000; j++) vis[j*i]=1; for(int i=2; i<=10000; i++) if(vis[i]==0) { len++; prim[len]=i; } for(int i=1; i<=len; i++) { sum=0; int j=i; while(sum<=10000 && j<=1229) { sum+=prim[j]; if(sum>10000) break; ans[sum]++; j++; } } while(~scanf("%d",&n)) { if(!n)break; printf("%d\n",ans[n]); } return 0; }
ACM:POJ 2739 Sum of Consecutive Prime Numbers-素数打表-尺取法
标签:
原文地址:http://www.cnblogs.com/HDMaxfun/p/5731527.html