糖妮儿
2018-06-09 11:05
0-50之间,首先自动排除0和1,故m从2开始
最外面的m循环差不多是用来记录你当前所求的数
里面的n循环是判断m是否能被除1和自己以外的数整除
n循环是用当前的m除以n,n从2到m-1,就是把1到本身之间的数全部除一遍
若是其中出现了整除现象,即m%n==0,则说明m可以被不是1和本身的数整除,m不是素数
此时满足if语句,且n的值还处于2-(m-1)之间就break了
则跳出循环后n!=m,不能输出m,
反之,若一直到n=m-1还是找不到一个数能整除m,说明m是素数
此时if(m%n==0)语句不满足,break不能执行,则继续执行表达式3——n++
则在for(n=2;n<m;n++)中n=m,不符合n<m
跳出n的for循环,来到m的for循环
此时m==n,则输出m。
如:m=2,n=2
n<m不满足,直接结束n的循环来到m的循环
此时m==n,输出m,m是素数
m=3,n=2
满足n<m,又m%n!=0,则执行n++
n=3,不满足n<m了
所以结束n的循环来到m的循环
此时m=n=3,输出m,m是素数
m=4,n=2
满足n<m,又m%n==0,满足if语句,执行break跳出n的循环来到m的循环
此时m=4,n=2不满足m=n,故不输出m,m不是素数
谢谢
希望能帮到你们
谢谢大佬,讲得很清楚
大佬,万分感谢!
谢谢!!
谢谢大佬
谢谢大佬
C语言入门
926210 学习 · 20797 问题
相似问题