#include
int main()
{
int m,n,i,j=0,a=3,sum=0,prime,l;
scanf("%d%d",&m,&n);
i=m;
if(i%2==0&&i!=2){
i=i+1;
for(i;i>=m&&i<=n;i++){
while(a
l=i%a;
if(l==0)
{prime=0;
a++;}
else
{prime=1;
j++;
sum+=i;
}
if(i==2)
prime=0;
}
}
}
printf("%d %d",j,sum);
return 0;
}
如果输入的m是奇数它就直接输出结果了,就是0 0
进行了修改:
#include<stdio.h>
int main()
{
int m,n,i,j=0,a=3,sum=0,prime,l;
scanf("%d%d",&m,&n);
for(i = m;i>=m&&i<=n;i++){
if(i == 1){
continue;
}
a = 2;
int prime = 1;
while(a<i){
l=i%a;
if(l==0)
{
//不是素数
prime=0;
a++;
break;
}
a++;
}
if(prime == 1){
j++;
//printf("%d\n",i);
sum += i;
}
}
printf("%d %d",j,sum);
return 0;
}