复杂版:
public class Main {
public static void main(String[] args) {
//输出2-200所有质数
for (int i = 2; i <= 200; i++) {
boolean flag = true;//假设所有数都是质数
for (int j = 2; j < i; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.println(i);
}
}
System.out.println("Game Over!!!");
}
}
简单版:
若一个数的约数在其开平方的右边, 那么必然会存在一个约数, 在其开平方的左边。
如:100
2 4 5 10 20 25 50
左边的 2 必定有 右边的 50 对应
左边的 4 必定有 右边的 25 对应
……
注:Math.sqrt(i)
取i的开平方
public class Main {
public static void main(String[] args) {
//输出2-200所有质数
loop:
for (int i = 2; i <= 200; i++) {
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
continue loop;//跳转到标签处
}
}
System.out.println(i);
}
}
}