统计素数并求和
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例:
3 9
输出样例:
3 15
解题思路:题目的关键还是在于如何对素数进行判断。其中我们用取余的方式来判断是否素数,再设置一个isprime来对判断的结果进行处理。
#include<stdio.h>
int main()
{
int N,M;
int i,sum=0,cnt=0;
scanf("%d%d",&M,&N);
for(i=M;i<=N;i++)
{ //取[M,N]的区间
int isprime,k;
isprime=1;
for(k=2;k<i-1;k++)
{
if(i%k==0)
{ //判断是否素数:用i%2~i%i-1,如果取余结果为0,就不是素数,开始下一循环
isprime=0;
break;
}
}
if(isprime)
{
cnt++; //计算素数个数
sum+=i; //计算素数的和
}
}
printf("[%d,%d]之间素数的个数为%d,和为%d\n",M,N,cnt,sum);
return 0;
}
原文链接:C语言练习4-11 统计素数并求和
GitHub:一些小程序