关于输出素数,脑袋想大了,也不明白

来源:百度知道 编辑:UC知道 时间:2024/06/03 20:33:50
要求输出10至100内的素数,下面是这个程序,
main()
{int i=11,j,counter=0;
for(;i<=100;i+=2)
{for(j=2;j<=i-1;j++)
if(i%j==0)
break;
if(counter%10==0) /*输出10个数后换行*/
printf("\n");
if(j>=i)
{printf("%6d",i);
counter++;
}
}
}
为什么要用j>=i做输出条件?我怎么感觉当判断完成后,应该是j=i呀,但用TC运行时是错误的。想了一中午也没明白,谢谢给我答案的朋友了。
谢谢了,是我改错了,大家都给了答案,就给最早的了,谢谢另外几位。

这里,j>=i和j==i效果是一样的。

j>=i表示j>i或者j==i,而由于j每次只加1,j>i是不可能的
因为在它之前,肯定会有j==i的情况出现,那时候就会退出了。

你将if(j>=i) 改为if(j==i)也行的,但是注意别改成了if(j=i) 哦

你是不是错改成j=i了,应该是j==i