#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)
printf("%d ", m);
}
return 0;
}
如果 m==n说明内层循环中 n从2循环到m-1的过程中m都不能被n整除,这就说明m不能被从2到m-1的整数整除 ,即m为素数。
如果 m==n说明内层循环中 n从2循环到了m-1,这就说明m不能被从2到m-1的整数整除 ,即m为素数。
当m为素数时,n循环到了m-1时,m仍不能被n整除,便跳出了for(n=2;n<m;n++)这个循环,但跳出时n已经加了1,即n==m,便能判断m为素数。
素数是只能够被1和自己整除的数字。当运行到跳出来的n=m时,说明在被自己整除之前都没有比1大的数能够整除它(如果跳出来的n!=m的话,就说明有其他因数了)。比如m=4的时候,首先跳出来的n是2,并不是自身,就说明这个n=2是m=4的一个因数,从而说明4不是素数。