c语言:请编程统计3到100之间所有素数的和,并输出。

多谢。。。我有好多问题啊。。。。

思路:从3到100依次判断是否素数,如果是累加求和,最后输出累加和。

参考代码:

#include<stdio.h>
int main()
{
int i,j,flg,sum=0;
for(i=3;i<=100;i++){
flg=1;
for(j=2;j<i;j++)//判断i是否是素数 
if(i%j==0){
flg=0;//不是素数把flg定义成0 
break;
}
if(flg) sum+=i;//是素数累加求和 
}
printf("%d\n",sum);//输出累加和 
return 0;
}
/*
运行结果:
1058
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-19
#include "stdio.h"
#include "math.h"
void main()
{
int x,y,num=0,sum=0;;
for(x=3;x<=100;x++)
{
for(y=2;y<=sqrt(x);y++)
if(x%y==0)
break;
if(y>sqrt(x))
{
printf("%d\n",x);
num++;
sum+=x;
}
}
printf("%d %d\n",num,sum);
getch();
}
我赶时间,随便编了一个,你编译一下,应该能成功。
第2个回答  2012-06-19
#include <stdio.h>

int main()
{
int i,j,k,sum=0;

for(i=3;i<100;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)break;

}

if(j>=i)
{printf("%d\t",i);
sum+=i;}
}

printf("3到100之间所有素数的和%d\n",sum);

return 0;
}本回答被网友采纳
第3个回答  推荐于2017-09-23
#include<stdio.h>

int isprime(int n)
{
int i;
for(i = 2;i * i <= n;i ++)
if(n % i == 0)
return 0;
return 1;
}

int main()
{
int i,sum;
for(i = 2,sum = 0;i <= 100;i ++)
if(isprime(i))
sum += i;
printf("%d\n",sum);
return 0;
}
此程序已在VC上运行通过本回答被提问者采纳