首页 > 其他 > 详细

欧拉第十题 求2000000以内的素数之和

时间:2017-01-29 16:56:25      阅读:192      评论:0      收藏:0      [点我收藏+]

#include <stdio.h>
#include <stdlib.h>
long long getSum(int n)
{
long long sum = 0;

char *array=(char*) malloc(n+1);
int i;

for(i=0; i<n+1; i++)
{
array[i]=‘r‘; //‘r‘ : remain
}

array[0]=‘d‘; //‘d‘ : delete
array[1]=‘d‘;

int p=2;

while(p*p<=n)
{
if(array[p]==‘r‘)
{
int j;
for(j=2; j*p<=n; j++)
{
array[j*p]=‘d‘;
}
}

p++;
}
for(p=2; p<=n; p++)
{
if(array[p]==‘r‘)
{
sum += p;
}
}

free(array);

return sum;

}
int main()
{
int max=2000000;

long long sum = getSum(max);

printf("sum of the prime numbers under %d is %lld\n", max, sum);

return 0;
}

欧拉第十题 求2000000以内的素数之和

原文:http://www.cnblogs.com/zzy0218/p/6357544.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!