2的时候出问题了,判断的时候经常忽略一些条件,不要为了答案做题,要为了结论做题.
#include<stdio.h>
#include<math.h>
main()
{
int i=1,j;
int M,N,P,Max;
int cnt=0,t,re,m;
scanf("%d%d",&M,&N);
P=((M>N)?M-N+1:N-M+1);
Max=P;
while(cnt<((M>N)?N:M))//5
{
i++;m=0;
if(i==2)
{
cnt++;
continue;
}
for(j=2;j<=sqrt(i);j++)
if(i%j==0)
{
m=1;
break;
}
if(m==1)continue;
cnt++;
}
t=cnt;
i--;
while(P)
{
re=cnt;
while(re==cnt)
{
i++;m=0;
if(i==2)
{
cnt++;
continue;
}
for(j=2;j<=sqrt(i);j++)
if(i%j==0)
{
m=1;
break;
}
if(m==1)continue;
cnt++;
}
printf("%d%s",i,((cnt-t)%10==0)?"\n":(P==1?"\0":" "));
P--;
}
}