c语言求1000以内的素数之和,我编写了一个程序,能运行但是答案不对,是哪出问题了呢

#include<stdio.h>
int sushu(int n)
{
int j;
for(j=2;j<=n;j++)
if(n%j==0)
return 1;
else
return 0;
}
void main()
{
int sum=0,i;
for(i=2;i<=1000;i++)
{
if(sushu(i)==0)
sum=sum+i;
}
printf("%d\n",sum);
}

取素数就不对
int sushu(int n)
{
int j;
for(j=2;j<n;j++)//小于n
if(n%j==0)
return 1;//去掉else
return 0;
}
//大概是这样
void main()
{
int sum=0,i;
for(i=2;i<=1000;i++)
{
if(sushu(i)==0)
sum=sum+i;
}
printf("%d\n",sum);
}
//试着运行一下追问

谢谢你,对了,但是为什么要去掉else保留return0呢

追答

return 0,是最后一句,他不属于IF里面,只有当j=n-1时,n%j!=0才会返回零,即当一个数除以小于他的任何大于等于2的数都除不尽是,返回零,希望采纳,睡觉了

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网