一道入门的题,不知道错那里,求解救
#include "stdio.h"#include "math.h"
int main( )
{
int ri,repeat;
int count, i, m, n, sum;
int prime(int m);
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%d", &m, &n);
count=0;
sum=0;
for(i=m;i<=n;i++)
{
if(prime(i))
{
count++;
sum=sum+i;
}
}
printf("count=%d, sum=%d\n", count, sum);
}
}
int prime(int m)
{
int i;
for(i=2;i<m/2;i++)
{
if(m%i==0)
{
break;
}
if(i>m/2&&m!=1)
{
return 1;
}
else
return 0;
}
}
5. 程序填空
不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入2 个正整数m和n(1<=m,n<=500),统计并输出m 和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
要求定义并调用函数prime(m)判断m是否为素数。
例:括号内是说明
输入:
3 (repeat=3)
1 10 (m=1, n=10)
20 35 (m=20, n=35)
14 16 (m=14, n=16)
输出:
count=4, sum=17 (1到10之间有4个素数:2,3,5,7)
count=3, sum=83 (20到35之间有3个素数:23, 29, 31)
count=0, sum=0 (14到16之间没有素数)
自己编译出来测试的结果错误的,求解错在哪