求所有小于两百万的质数的和。
这筛那筛的没时间学,指数里的唯一一个偶数丢出来,j每次加2
开放减少一半遍历空间
#include <stdio.h>
#include <math.h>
int main()
{
long sum=2; //将2这个特殊值直接取出来算作默认情况
for(int j=3;j<2000000;j+=2) // 从3开始遍历所有数
{
int i;
for (i=2;i<=(int)(sqrt(j));i++){
if(j%i==0)break;
}
if(i>(int)(sqrt(j))){
sum+=j;
}
}
printf("%ld",sum); // 输出总和
return 0;
}