Problem 10
Summation of primes
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。
求所有小于两百万的素数的和。
这道题用我之前的子函数
已经超过预计的复杂度,
然后上网看了其他人的做法
学会了一种建立质数表的算法
因为找出非质数要比找出质数容易太多,所以就快很多
然后之后也应该学会用这种方式做题
#include<iostream>
int isprime[2000000];
void main()
{
int i, j;
long long sum = 0;
for (i = 2; i < 2000001; i++)
if (isprime[i] == 0)
{
for (j = 2; i*j < 2000001; j++)
isprime[i*j] = 1;
sum += i;
}
std::cout << "最后结果为:" << sum << std::endl;
system("pause");
}
最后的答案:142913828922