pta统计素数并求和 帮看一下哪里有问题

pta统计素数并求和 帮看一下哪里有问题

问题描述:

#include <stdio.h>
#include <math.h>
int main ()
{
int M,N,i,a,sum=0,count=0,k=0;
scanf("%d %d",&M,&N);
for(i=M;i<=N;i++)
{
for(a=1;a<=sqrt(i);a++)
{
if(i%a==0)
{
break;
}
}
if(a>sqrt(i))
{
sum+=i;
count++;
}
}
printf("%d %d",count,sum);
return 0;
}

修改如下,供参考:

#include <stdio.h>
#include <math.h>
int main ()
{
    int M,N,i,a,sum=0,count=0,k=0;
    scanf("%d %d",&M,&N);
    for(i=M;i<=N;i++)
    {
       for(a=2,k=0;a*a<=i;a++)//for(a=1;a<=sqrt(i);a++)
       {
          if(i%a==0)
          {
              k = 1;
              break;
          }
       }
       if(k == 0 && i != 1)  //if(a>sqrt(i))
       {
          sum+=i;
          count++;
       }
    }
    printf("%d %d",count,sum);

    return 0;
}