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

求100-500之间所有素数之和.帮帮忙,谢谢
2025-06-27 15:54:34
推荐回答(5个)
回答1:

#include"stdio.h"
void main()
{
int s=0,n,a;
for(n=100;n<=500;n++)
for(a=2;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);
}
大概就是这样,,,,你调试下吧。。。。

回答2:

#include "stdio.h"
void main()
{
int i,temp,j;
long sum=0;
for(i=100;i<500;i++)
{
temp=0;
for(j=2;j
if(i%j==0)
temp++;
if(temp==0)
sum+=i;
}
printf("%ld",sum);
}

回答3:

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); */
}

回答4:

#include
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;
}

回答5:

#include
"stdio.h"
void
main()
{
int
i,temp,j;
long
sum=0;
for(i=100;i<500;i++)
{
temp=0;
for(j=2;jif(i%j==0)
temp++;
if(temp==0)
sum+=i;
}
printf("%ld",sum);
}