C语言:求100-500之间所有素数之和.

求100-500之间所有素数之和.
帮帮忙,谢谢

#include"stdio.h"
void main()
{
int s=0,n,a;
for(n=100;n<=500;n++)
for(a=2;a<n;a++)
{
if(n/a==0)break;/*如果n不是素数,那么就会被从2到它本身之间的数整除,就跳出内循环*/
if(a=n) /*如果n是素数,那么内循环就不会提前结束,等到最后一次循环之后a++,a就会与n相等*/
s+=n; /*将素数全部相加,也就是求和*/
}
printf("100-500之间所有素数之和为:%d\n",s);
}
还有一种好像是(我对这个方法的数学原理不清楚,所以也不大会用)判断如果2到这个数的开平方数都不能整除这个数,那么这个数就是素数:
#include"stdio.h"
#include"math.h"
void main()
{
int s=0,n,i,k,j;
for(n=100;n<=500;n++)
{
k=sqrt(n);
for(i=2;i<=k;i++)
{
if(n/i==0)break; /*判断依据和上面的一样,如果不是素数就提前跳出内循环了,下面的也一样*/
if(i>k)
s+=n;
}
}
printf("100-500之间所有素数之和为:%d\n",s);
}
大概就是这样,,,,你调试下吧。。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-09-19
#include "stdio.h"
void main()
{
int i,temp,j;
long sum=0;
for(i=100;i<500;i++)
{
temp=0;
for(j=2;j<i;j++)

if(i%j==0)
temp++;
if(temp==0)
sum+=i;
}
printf("%ld",sum);
}本回答被提问者采纳
第2个回答  2009-05-12
main()
{
int i,n;
long sum=0;
for(n=100;n<=500;n++)
{
for(i=2;n%i;i++);
if(i==n)sum=sum+i; /*如果想显示计算式子则替换if(i==n){sum=sum+i;printf("%d+",i); }*/
}
printf("sum=%d\n",sum);/* printf("\b=%d\n",sum); */
}
第3个回答  2009-05-12
#include<stdio.h>
main(){
int i;
long s=0;
printf("s=");
for(i=100;i<=500;i++){
if(sushu(i)) {printf("+%d",i);s+=i;}
}
printf("=%ld",s);
getch();
}
int sushu(int n){
int i,t;
for(i=2;i<=n;i++){
if(n%i==0) {t=i;break;}
t=i+1;
}
if(t==n) return 1;
else return 0;
}
第4个回答  2020-02-25
#include
"stdio.h"
void
main()
{
int
i,temp,j;
long
sum=0;
for(i=100;i<500;i++)
{
temp=0;
for(j=2;j<i;j++)
if(i%j==0)
temp++;
if(temp==0)
sum+=i;
}
printf("%ld",sum);
}
相似回答