【网上看到这样一个题 但就是不明白 大神们指导下】
package com.itcast.itwork;
public class SuShu {
public static void main(String[] args) {
for(int i=1;i<=1000;i++) {
int m=2;
while(m<=i) {
if (i%m==0) break;
else m++;//把这一行调到如下所示的行
if (i==m)
System.out.println(m); //调到这一行} } }}
}
}
}
}
不知道为什么判断if (i==m)呢?
------解决方案--------------------求素数。
while里,从m=2开始,判断当前i取余数m是否为0,为0表示除得尽,直接break;
当m==i时,说明从2到i-1这些整数,都无法被i除尽,i就是素数了。(那个println打印i比较好理解)
当然,这里的2应该也是素数的。
------解决方案--------------------i==2 时,也输出i 那是指2也是素数
------解决方案--------------------
2不是素数?
------解决方案--------------------如果i==m,就说明i是一个素数,在程序中就是显示该素数。