m%n==0 和取余以及取素数的问题
#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;
}
假设父循环m=7时,子循环n=2;n<m,子循环条件满足,一直循环,直到n==m==7时循环条件不满足,退出循环,此时走if句,7%7==0,判定break生效,退出循环,那么同时满足后面的m==n 进入显示,正确吗?
同理,m=9,n=2,循环,直到m==n==9时,9%9=0,条件满足,break生效,并满足m==n,进入显示???这怎么可能?
我哪里的理解有误?求解答。