慕勒0452018
2018-12-14 20:04
for(m=2;m<=50;m++)
{
for(n=2;n<m;n++)
{
if(m%n==0)
}
if(n==m)
}
第一层循环遍历从2-50的所有数;第二层循环遍历大于2小于第一层数字的所有数;
根据定义,当一个数只能被只能被1和它本身整除的数字是素数。
把第一句话翻成人话就是 找一个数字,除以比他小的每一个数字,如果求余等于0的结果不是他本身(能整除别的数字) 即这个数不是素数
如果是他本身,即这个数是素数
这也就是下两句的判断逻辑
for循环是 for(1;2;3) { 代码。。。 } //1,先运行for里的“1”和“2”然后运行{}里的,之后返回来运行“3”, //2,按照这样的话,M的初始值是2,N的也是2,m<=50是真(值为非0,可以用printf("%d\n",m<=50);看到), //然后执行第二个for循环 //3,n=2,n<m为假(值为0)不执行if(m%n == 0) //4,接着执行if(n == m),然后执行m++(就是m加1) //5,再执行“1”和“2”,循环往复直到循环结束。 //不知道你能理解不,我也是没入门呢,正在学,这个需要你自己理解。
那怎么可能n能被m 整除呢,按你的说n只比m小一
因为后面有个n++;n++的作用是在运算结束后n的值加一。
C语言入门
926207 学习 · 20797 问题
相似问题