200万以下的素数之和怎么求?Project Euler 第 10 个问题,http ://projecteuler.net/problem=10 。我测试了我的代码低于 10 并且工作起来就像一个魅力。但是低于 200 万似乎不起作用:/ 已经大约 15 分钟了,而且还在继续,我认为应该不会花那么长时间,对吧?我会尝试 sum 函数,但我仍然不明白为什么这不起作用?
编辑:我想我不能使用 sum 函数,因为数字甚至没有存储在数组中:/
我的代码:
#include <iostream>
using namespace std;
int main()
{
unsigned long long x,y,z=0,s[200000],a,sum=0;
bool isprime;
for(x=3;x<2000000;x++)
{
for(y=2;y<x;y++)
{
if(x%y!=0 && x!=y)
{
isprime =true;
}
else
{
isprime =false;
break;
}
}
if(isprime ==true)
{
s[z] = x;
z++;
isprime = false;
}
}
cout<<z;
for(a=0;a<z;a++)
{
sum=sum+s[a];
cout<<"Sum is being calculated "<<sum<<"\n";
}
cout<<"The sum is "<<sum+2<<" LADIES";
}