赞
踩
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
10 31
7 143
#include <stdio.h> int main(){ int m,n; scanf("%d %d",&m,&n); if (m<=n&&n<=500&&m>=1){ if (m==1){//m=1,14行的m%i==0成立,使sum的值加一,导致结果错误 m++; } int sum=0; int count=0; while (m<=n){ int flag=0; for (int i=2;i<=m/2;i++){//i<=m/2为了减少计算次数,到m/2够用了 if (m%i==0){ flag=1;//m不是素数更改flag为1 break; } } if(flag==0){//m是素数 sum+=m; count++; } m++; } printf("%d %d",count,sum); } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。