c语言判断区间内素数的个数,c语言中的素数编程题:计算500-800区间内素数个数,并按从大到小的顺序进行加减间隔计算求和。...
满意答案odxalg2017.01.18采纳率:41%等级:9已帮助:313人123456789101112131415161718192021#include<stdio.h>//计算500-800区间内素数个数,并按从大到小的顺序进行加减间隔计算求和。intmain(){intcnt=0,sum=0,i,j,t=-1;for(i=17;i>=2...
满意答案

odxalg
2017.01.18

采纳率:41% 等级:9
已帮助:313人
123456789101112131415161718192021#include <stdio.h>//计算500-800区间内素数个数,并按从大到小的顺序进行加减间隔计算求和。int main(){ int cnt=0,sum=0,i,j,t=-1; for (i=17;i>=2;i--) { for (j=2;j<=i/2;j++) { if (i%j==0) break;//在i/2前只要遇到一个能除尽的数则跳出本层for循环,则j的值一定小于等于i/2 } if(j>i/2) //i/2前的每个数都除过一遍且不能除尽(即for循环自然结束)则判断j为素数 { t=-t; sum=i*t+sum; cnt++; } } printf("%d %d",cnt,sum); return 0;}
判断条件的位置放错了,详见注释,上边的代码是修改后的。
这里按照原程序的计算方式,为先减后加的顺序,如2到13间的素数和为:
13-11+7-5+3-2追问: 判断条件的位置怎么错了啊?我后来把if(j>i/2)改为≥就对了
03分享举报
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)