题目内容:
要求统计给定整数M和N区间内素数的个数,并对所有素数求和。
其中两数必须满足条件: 1≤M≤N≤500。
如果输入的M和N不能满足以上条件,则提示“输入数据错误”。
输入格式:
在一行中输入整数M、N ,以空格分隔。
输出格式:
在一行中顺序输出M和N区间内素数的个数,以及所有素数的和,以一个空格分隔。输入数据不满足条件时输出“输入数据错误”
输入样例:
10 31
输出样例:
7 143
时间限制:500ms内存限制:32000kb
#include<stdio.h>
#include<math.h>
int main()
{
int M , N ;
scanf( "%d %d" , &M , &N ) ;
if( M < 1 || N > 500 || M > N )
printf( "输入数据错误\n" ) ;
else
{
int num = 0 , sum = 0 , i , j ;
for( i = M ; i <= N ; i++ )//i为要判断的数
{
int flag = 1 ;
if( i < 2 ) flag = 0 ;
else
for( j = 2 ; j < i ; j++ ) //为什么不用sqrt(N)
if( i % j == 0) flag = 0 ; //数据小时不满足
if( flag == 1 )
{
num++ ;
sum += i ;
}
}
printf( "%d %d" , num , sum ) ;
}
return 0 ;
}