网上的代码意思是:n就是你输入的任意数,判断它是否是素数的方法是用大于2小于n的数去除n,若能整除即不是素数,跳出循环;若数一直增加到n+1都没有被整除,即可输出“素数”。
成都创新互联公司是一家专注于成都网站设计、成都网站建设与策划设计,茅箭网站建设哪家好?成都创新互联公司做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:茅箭等地区。茅箭做网站价格咨询:028-86922220
你的源程序:3是素数,很简单,所以用if来提醒输入大于3的数,你的只是另一种素数算法,是优化的算法,更快。因为只需用2到根号a去判断。
按照你的要求编写的C语言程序如下
#includestdio.h
int f(int x) //定义判断素数的函数
{
int n,flag=1;
if(x==1) return 0;
for(n=2;nx;n++)
if(x%n==0)
flag=0;
return flag;
}
int main()
{
int i,N,M,count=0,sum=0;
scanf("%d%d",N,M);
for(i=N;i=M;i++){
if(f(i)==1){
count++;
sum=sum+i;
}
}
printf("%d到%d之间共有%d个素数,它们的和为%d",N,M,count,sum);
return 0;
}
你s=s+x;
放的位置不对,应该这样放:
#include
void
main()
{
int
x,n=10,i,s=0;
for(x=3;x=n;x++)
{
for(i=2;i
=x)
{
printf("%d+",x);
s=s+x;
}
}
printf("\b=%d\n",s);
}
补充:
在用外层的for计算下一个的时候,要把内层for判断出来的素数累加起来啊
否则,计算到下一个的时候,前一个就丢了啊
所以,累加的那句代码,应该在外层for循环的里面,内存for循环的外面(后面)啊
您好,很高兴回答您的问题。
对于您的这个问题,有两个方面的知识点需要掌握,一是素数的判断标准,我们知道只能被1和数本身整除的数叫素数,具体实践时就要用到循环结构;而是函数的调用,要清楚调用函数的结构和使用方法,才能用好调用。
以上两个问题解决了,那么这个程序就可以实现功能了。还有关键的一点就是您没有给出具体的范围,也就是求哪个范围内的素数之和呢,没有这个范围,也就没有办法求出和了。