我无法运行以下代码,即它不会给出任何输出
目标是找到 200 万以下的所有素数之和,
#include <stdio.h>
#include <math.h>
int is_prime(long long int i)
{
long long int n;
if(i==2)
return 1;
for(n=2;n<=sqrt(i);n++)
if(i%n==0)
return 0;
return 1;
}
int main()
{
long long int s=0,i=2;
for(i<2000000;i++;)
{
if(is_prime(i))
s=s+i;
}
printf("sum: %lli",s);
return 0;
}
最佳答案
您错误地使用了 for 循环。 for 循环如下所示:
for(initialization; test expression; update)
但是你写了
for(i<2000000;i++;)
应该是
for(;i<2000000;i++)
即,在 i<2000000 和增量的每次迭代测试中跳过初始化。
关于c - C 语言的欧拉数 10 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22910008/