#include<stdio.h>
#include <math.h>
int main(){
int m,n,i,sum=1,t,key;
scanf("%d %d",&m,&n);
if(sum==m){
printf("2");
if(m!=n){
printf(" ");
}
}
for(i=3;n!=1;i++){/*这里的条件原来是(i=3;1;i++)*/
key=1;
t=2;
for(t=2;t<=sqrt(i);t++){
if(i%t==0){
key=0;
break;
}
}
if(key){
sum++;
if(sum>=m){
printf("%d",i);
if(sum!=n){
if((sum-m+1)%10==0){
printf("\n");
}else{
printf(" ");
}
}else{
break;
}
}
}
}
return 0;
}
第一次提交时遇到超时,经过排查发现是for语句的原有条件(代码中注释的部分)设置得不好:当输入的值为 1 1 时for无法结束。