注册 登录
编程论坛 新人交流区

求3-120之间所有的素数之和!!

枫之恋 发布于 2007-10-18 17:08, 480 次点击
求3-120之间所有的素数之和!!
各位大哥,这题怎么做啊!!!
11 回复
#2
herolzx2007-10-18 17:25
回复:(枫之恋)求3-120之间所有的素数之和!!
main(){
int boolsu( int );//判断是否是素数
int i,sum=0;

for(i=4;i<120;i++)
if(boolsu(i)) sum = sum + i;

printf("3-120 su shu zhi he is %d\n",sum);
}
int boolsu(int n){
int i;
for(i=2;i<n;i++)
if( n % i==0) return 0;//是素数 boolsu(i)=1 否则=0
return 1;
}
#3
xuanzilie2007-10-18 19:22
素数是什么我还不知道,哎,最后自定义函数没看懂
#4
blosaa2007-10-18 20:04
#include<stdio.h>

void main()
{
int i,j,s;
printf("3~120间素数的和为:");
s=0;
for(i=3;i<=120;i++)
{
for(j=2;j<i;j++)
{
if((i%j)!=0)
{
s+=i;

}

}

}

printf("%d\n",s);

}



#5
菜菜的鸟2007-10-18 21:11
i+2 可以不额`?
#6
xuesong2007-10-18 22:21

求素数会吧!!
c的书里面通常都有的

#7
xhr7192007-10-18 22:22
haha
#8
小村可乐2007-10-18 23:44

之前做过的,本来还想给你代码的,但是前面两个高手既然出现了,我就不发了!

#9
xhtang2007-10-19 00:04
blosaa 错了,,
[CODE]

#include<stdio.h>
#include <math.h>
void main()
{
int i, j, sum = 0;
for (i=1; i<101; i++)
{
for (j=2; j<=sqrt(i)+1; j++)
{
if (i%j == 0)
{
break;
}
else if (j>sqrt(i))
{
sum = sum + i;
//printf("%d ", i);

}
}

}
printf("total = %d\n", sum);

}

[/CODE]
#10
baby662007-10-19 15:43
楼上的效率是现在最高的
哈哈
可是为什么不+2那样进行循环判断呢?
#11
枫之恋2007-10-20 12:21
谢谢了各位了哦!!嘻嘻1!1
1