Project Euler Problem 50

来源:互联网 发布:端口号是干嘛的 编辑:程序博客网 时间:2024/05/23 01:18

这是简单题,直接枚举每个起始的质数,然后连续质数相加,记录下能得到的最大的质数的项数,然后找到最大项数即可。

#include<stdio.h>bool isPrime(int n)//判断质数{int i;for(i=2;i*i<=n;i++)if(n%i==0)return false;return true;}int main(){int xx,num,sum=0,max=0,cnt,ans;for(xx=2;xx<1000;xx++)//枚举起始位置{if(!isPrime(xx))//从质数开始continue;cnt=0,sum=0;for(num=xx;;num++){if(sum+num>1000000)break;if(!isPrime(num))//只能加质数continue;cnt++;//记录项数sum+=num;if(isPrime(sum)){if(cnt>max)//得到最大项数,和答案{max=cnt;ans=sum;}}}}printf("%d %d\n",max,ans);return 0;}


原创粉丝点击