我正在解决一个问题,在 C 中找到所有素数的总和直到 200 万。我不断得到错误的答案(1179908154),但是当我用 C++ 编写相同的代码时,它给出了正确的答案(142913828922)。请告诉我为什么会这样,谢谢。
这是我的代码
void main()
{
int i,j;
unsigned long long sum;
for(sum=2,i=3;i<=2000000;i+=2)
{
for(j=3;j*j<=i;j++)
if(i%j==0)
break;
if(j*j>i)
sum+=i;
}
printf("%d",sum);
}
我在 Windows 7、32 位并使用 GNU GCC v4.7.1