7-9 统计素数并求和
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例:
10 31
输出样例:
7 143
#include<stdio.h>
int main()
{
int m, n, count = 0, sum = 0, flag = 0;
scanf("%d%d", &m, &n);
if(m==1&&n==1)//先判断是否m和n都为1,如果是则直接输出无质数。
{
printf("0 0");
return 0;
}
for (m;m<=n;m++)//循环外层,每次循环将m加1然后进行第二步检测。
{
for (int i = 2;i < m;i++)//第二层循环,检测是否可以被除1和m本身之外的数整除,如果可以则将flag设为1,即当前m不是质数。
{
if (m%i == 0)
{
flag = 1;
}
}
if (flag==0&&m!=1)//当flag=0并且m不等于1时,数量+1,sum+m,最后一个测试点就是当只有m=1时的情况。
{
count++;
sum += m;
}
flag = 0;//别忘了最后把flag初始化为0.
}
printf("%d %d", count, sum);
return 0;
}