小编qua*_*cat的帖子

素数检查码的奇怪情况

当我为Project Euler解决问题时,它让我总结了200万以下的所有素数.这是我的代码:

#include<stdio.h>
#include<math.h>
int isPrime(int);
int main() {
    long long int sum = 0;
    int i; // index
    for(i = 2 ; i < 2000000 ; i++) {
        if(isPrime(i)) {
            sum += i;
        }
    }
    printf("%lli\n", sum);
}

int isPrime(int num) {
    int i; // index
    int sq = sqrt(num);
    for(i = 2 ; i <= sq ; i++) {
        if(num % i == 0) {
            return 0;
        }
    }
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

此代码导致正确答案,142913828922.但是,当我将for循环更改为isPrime():

for(i = 2; …
Run Code Online (Sandbox Code Playgroud)

c algorithm primes

8
推荐指数
2
解决办法
125
查看次数

标签 统计

algorithm ×1

c ×1

primes ×1