啊哈磊_编程从这里起步
标题:
挑战6
[打印本页]
作者:
rosynirvana
时间:
2013-11-4 15:24
标题:
挑战6
不熟悉筛法可以在这道题目中练习一下筛法
不过对于一个特殊问题,代码可以更简单一些
例如,注意到sqrt(100) = 10,小于等于10的质数其实只有2, 3, 5,7四个
那么直接用这四个数字来筛就可以了,最后结果别忘了加上2, 3, 5, 7四个数字
#include <stdio.h>
int main()
{
int i, j;
int sum = 0;
int div[] = {2, 3, 5 ,7};
char buf[101] = {1, 1, 0};
for(i=0; i!=4; ++i){
int d = div[i];
for(j=d; j<101; j+=d)
buf[j] = 1;
}
for(int i=2; i!=101; ++i)
if(buf[i] == 0)
sum += i;
printf("%d\n", sum+17);
return 0;
}
复制代码
欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/)
Powered by Discuz! X3.2