#include <stdio.h>
void main()
{
int a,b;
for(a=2;a<=100;a++) //取100以内所有的数
{
for(b=2;b<a;b++) //穷举法判断是否有因子
if(a%b==0) //有则非质数
break; //跳出本次循环
if(b==a) //当条件为真则为质数
printf("%5d",a);
}
}
~~~~~~~~~~~~~~~~~~~
主要是有两个问题;
一;第二个for循环没有大括号,其意思是不是说不管b<a的条件是否成立,都往下执行?
二;a和b的初始都是0;a/b余数等于0,条件为真,因此执行break跳出循环,然后a+1,a就变成3了,此时b还是2;然后a下来a/b,3/2后余1,条件为假,然后执行下面的b==a,可是条件又不成立,为什么把2和3给输出了!非常不懂!望知者解释一下!