练习4-11 统计素数并求和
本题要求统计给定整数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);
int i,j;
//count用来统计区间内有多少个素数,sum用来求区间内素数的和
int count = 0;
int sum = 0;
//因为是自定义区间嘛,所以边界值为1的可能性也是有的,对1进行特殊处理
if(m == 1){
m =2;
}
//以下就是求素数的常用套路了
for(i=m;i<=n;i++){
//定义一个变量,用给变量赋值的不同来进行判断是否为素数
int isPrime = 1;
for(j=2;j<i;j++){
//i%j可以为0的话,就说明这个i不是素数,把这个变量赋为0,
if(i%j == 0){
isPrime = 0;
break;
}
}
//判断变量是否为1,为1的话就是素数,然后进行相关操作
if(isPrime==1){
count++;
sum += i;
}
}
//这个区间内所有的素数和他们的和
printf("%d %d",count,sum);
return 0;
}