这代码写得太离谱了,不好改,重写如下:
#include "stdio.h"
int prime(int n){//判断素数
int i;
if(n>2 && !(n&1) || n<2)
return 0;
for(i=3;i*i<=n;i+=2)
if(!(n%i))
return 0;
return 1;
}
int main(int argc,char *argv[]){
int m,n,sum,t,c;
printf("Enter m & n(int m>0 and n<=500 and m<=n)...\n");
if(scanf("%d%d",&m,&n)!=2 || m<1 || n>500 || nprintf("Input error, exit...\n");
return 0;
}
for(c=m,t=sum=0;m<=n;m++)
if(prime(m))
t++,sum+=m;
printf("There is(are) %d primes between %d~%d\n",t,c,n);
printf("The sum of them is %d\n",sum);
return 0;
}
运行样例:
#include
int prime(int k);
int main (void){
int m,n,k,sum,count;
sum=0;
count=0;
scanf("%d%d",&m,&n);
for(k=m;k<=n;k++)
if(prime (k)!=0){
count++;
sum+=k;
}
printf("count=%d,sum=%d",count,sum);
}
int prime(int k){
int i,a=k>1;
for(i=2;iif(k%i==0){
a=0;break;
};
return(a);
}