尤拉計劃 第十題
阿新 • • 發佈:2019-02-10
The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.
Find the sum of all the primes below two million.
低於10的素數之和為2 + 3 + 5 + 7 = 17。
找出200萬以下所有素數的總和。
思路
#include <stdio.h> #include <inttypes.h> #define max 2000000 int main(){ int32_t prime[max + 5] = {0}; int64_t sum = 0; for(int64_t i = 2; i < max; i++){ if(!prime[i]) {prime[++prime[0]] = i; sum += i;} for(int64_t j = 1; j <= prime[0]; j++){ if(i * prime[j] > max) break; prime[i * prime[j]] = 1; if(i % prime[j] == 0) break; } } printf("%"PRId64"\n", sum); return 0; }