《C++最强素数问题》由会员分享,可在线阅读,更多相关《C++最强素数问题(4页珍藏版)》请在金锄头文库上搜索。
1、C+最强素数问题题目:小李在你帮助之下轻松战胜了他的同学们,于是满怀恶意的同学出了一个题目来为难小李,作为小李神一样的队友,你又要出力了。素数41能写成连续6个素数之和:41=2+3+5+7+11+13。现在要求n以内的素数中,能表示为最多连续素数之和的那个数,如果有多个答案,请输出最大的那个素数。输入:仅一行,一个整数n。输出:输出就一个整数,为所求的能表示为最多连续素数和的那个素数。提示:【样例说明】 41=2+3+5+7+11+13 【数据规模】 30%的数据,1=n=1000 60%的数据,1=n=10000 80%的数据,1=n=100000 100%的数据,1=n=1000000
2、代码:#include #include #include #include /#include using namespace std;int n;int ans1000005;int primes1000005;int v 1000005;int res1000005;void primed() int m=0; for(int i=2;i=n;i+) if(vi=0) resi=1;vi=i;primesm+=i; for(int j=0;jvi|primesjn/i) break; vprimesj*i=primesj; int main() cinn; memset(res,0,sizeof res); primed(); int a=0; int max_size=0; for(int i=0;i+) if(primesi=0) a=i-1;break; for(int i=0;i=a;i+) int tem=0; for(int j=i;jn) break; if(restem) max_size=max(max_size,j-i+1); ansj-i+1=max(tem,ansj-i+1); coutansmax_size; return 0;4