4~1.4
4~14习题的输出素数求解
#include <stdio.h>
int main()
{
int m, n;
for(m=2; m<=50; m++)
{
for(n=2; n<m; n++)
{
if(m%n==0)//什么条件下跳出当前循环?
//这里应该退出当前循环了
{
break;
}
}
if(m == n) //n循环结束后,如果m=n的话就输出m
printf("%d ", m);
}
return 0;
}
for(n=2; n<m; n++) 从此循环出来有两种情况 一种是2<n<m且m可以被n整除,则break出第二个for循环,而且n break出来的时候 n<m,这种情况m不是素数。另一种是除1之外没有小于m的数可以整除m,则第二个for循环运行到n=m-1,n++->m然后退出第二个for循环且此时n=m, m为素数。
举报