这里用翁恺老师讲的判断素数的算法,效率更高;
#include <stdio.h>
#include <math.h> //要用sqrt,所以要加;
int isPrime(int x)
{
int i,ret; //这部分是翁恺老师讲的素数算法;
if(x<2){ //只用判断到2到x的平方根这部分存在不存在1个可以整除的;
ret=0; //如果存在,那么x的平方根到x,可能还有一个;
}else{ //那么算上1和本身,至少3个,不是素数,且找到这样的数,立马break;
for(i=2;i<=sqrt(x);i++){
if(x%i==0){
ret=0; //不是素数并break,使算法更快;
break;
}else{
ret=1; //是素数;
}
}
}
return ret;
}
int main()
{
int M,N,i,count=0,sum=0; //定义变量并初始化;
scanf("%d %d",&M,&N);
for(i=M;i<N+1;i++){
if(isPrime(i)==1){ //简单的遍历;
count+=1;
sum+=i;
}
}
printf("%d %d\n",count,sum);
return 0;
}