赞
踩
PTA上有个函数题与其类似,然后它既然归为编程题,我就尽量不用函数做,文末会贴一下别人做的。
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式: 输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例: 10 31
输出样例: 7 143
代码(正确)
#include <stdio.h> int main() { int m,n,s; int sum=0; int i,count=0,flag=0; scanf("%d%d",&m,&n); s=m;//m的副本 while(s<=n){ for(i=2;i<s;i++){ if(s%i==0){ flag=1; break;//一旦可除,跳出循环。 } } if(flag==1) flag=0; else if(flag==0){ sum=sum+s;//素数和 count++;//素数个数增加 } s++; } if(m==1){ printf("%d %d",count-1,sum-1);//2是素数 } else{ printf("%d %d",count,sum); } return 0; }
注意:这里说明一下,break不能调if语句,break跳的应该是for循环。
这个文章有说明,检查素数只要看取余到它的根号就行。https://blog.csdn.net/YelloJesse/article/details/82682080
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。