为什么没有输出5866321478966524788523987741236998884128996358
错误的应该是i = a这句,每次循环i初始值都为a,我们输入100,那么每次循环它都会是100,那么第一个for循环那里它就会满足i%j == 0,x就会等于1,那么x=0那部分输出的内容就不会有了
修改的代码
#include<stdio.h>
int main()
{
int a,n,i,j,x;
int count = 0;
scanf("%d %d",&a,&n);
i = a;
while(n > 0){
for(j = 2;j < i;j++){
x = 0;
if(i % j == 0){
x = 1;
break;
}
}
if(x == 0){
printf("%d",i);
count++;
if(count % 8 == 0){
printf("\n");
}
}
if(count == n){
break;
}
i++;
//printf("%d\n",i);
}
}
不满足if x==0的条件当然不会输出了。
因为你x的值最后是在第一个for循环中改变的,且最会将1赋值给x后用break退出循环,这导致x=1不满足x==0的条件无法进入第二个if语句所以不会有输出