之前面试好多应届毕业生,大多数都写不出这个程序,唉,只能叹息~~
首先是素数的定义:
质数又称素数。指在一个大于1的自然数中,除了1和此数自身外,不能被其他自然数整除的数。
所以1不是素数,循环变量应该从2开始
for(i=2;i<=100;i++)
{
for(j=2;j<=i/2;j++)//i很大的时候,应该用j<=sqrt(i),减少循环的次数
{
if(i%j==0) break;//如果能整除,说明i不是素数,跳出循环
}
if(j>i/2) printf("%d ",i);//如果没有break出来的话,j会一直增加,直到不满足循环条件(j<=i/2)
//如果循环break出来的话,j肯定满足循环条件(j<=i/2),不用输出i
}