c - C 语言的欧拉数 10 项目

标签 c

我无法运行以下代码,即它不会给出任何输出

目标是找到 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/

相关文章:

c - C语言中如何将int转为float?

c# - 避免我的应用程序使用打印屏幕进行捕获

c - 为什么这会让我的显示器发疯? (但只是有时)

c - 指针和与 C 的交换

c - 警告 : passing argument 1 of makes integer from pointer without a cast [enabled by default]

有人可以解释一下这个状态机程序是如何工作的吗?

python - 实现 AirDrop 协议(protocol)

c - 避免 fork()/SIGCHLD 竞争条件

c++ - 在 mpz_t (MPIR) 中分配多少空间?

C 从字符串中删除多个字母