首先,1既不是素数也不是合数
方法一:简单方法
public class Prime {
public static void main(String[] args) {
//1既不是素数也不是合数
for (int i = 2; i <= 200; i++) { //外层被除数
boolean b = true; //假设初始时都为素数
for (int j = 3; j < i; j++) { //内层除数
if(i % j == 0){ //如果余数为0
b = false; //则不是素数
break; //跳出循环
}
}
if(b)
System.out.println(i);
}
}
}
方法二:优化代码,减少for循环的遍历次数,提高代码效率
public class Prime {
public static void main(String[] args) {
System.out.println("2");
for (int i = 3; i <= 200; i = i + 2) { //外层被除数 ,因为偶数不可能是素数,所以直接+2
boolean b = true; //假设初始时都为素数
for (int j = 3; j < Math.sqrt(i); j++) { //内层除数,利用Math.sqrt求i的平方根可以减少循环次数
if(i % j == 0){ //如果余数为0
b = false; //则不是素数
break; //跳出循环
}
}
if(b)
System.out.println(i);
}
}
}
方法三:把判断是否是素数重新写一个方法里,然后在main方法中调用
public class Prime {
public static void main(String[] args) {
for (int i = 2; i <= 200; i++) {
if(isPrime(i))
System.out.println(i);
}
}
public static boolean isPrime(int p){
for (int j = 2; j <= Math.sqrt(p); j++) {
if(p % j == 0)
return false;
}
return true;
}
}