7-33 统计素数并求和 (20 分)
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例:
10 31
输出样例:
7 143
bool ISZS(int n){
int i=2;
bool ret=true;
while(i <= n){
if(i%n == 0){
ret = false;
i++;
}
}
return ret;
}
#include <stdio.h>
#include <stdbool.h>
#include<math.h>
bool Iszs(int n)
{
int i=2;
while(i<=floor(sqrt(n))&&(n%i!=0)) //floor为向下取整函数,sqrt()求平方根
i++;
if(i>floor(sqrt(n)) && n!=1)//若是因为i大于n的平方根而跳出循环,则说明n为质数
return true;
return false;
}
int main(void)
{
int m,n,count=0,sum=0;
scanf("%d%d",&m,&n);
for(int i=m;i<=n;i++){
if(Iszs(i)==true){
count++;
sum+=i;
}
}
printf("%d %d",count,sum);
return 0;
}