package cn.cmcc;
public class Test01 {
private static boolean isPrime (int num) {
if (num == 1) {
return false;
}
long sqrtNum = (long) Math.sqrt(num);
for (int i = 1; i < sqrtNum; i++) {//为什么i++没有变化,
if (num % i == 0) {
System.out.print("false");
return false;
}
}
return true;
}
public static void main(String[] args) {
for (int i = 1; i < 101; i++) {
if (isPrime(i)) {
System.out.println(i);
}
}
}
}
------解决思路----------------------
if (num == 1) {
return false;
}
long sqrtNum = (long) Math.sqrt(num);
for (int i = 1; i < sqrtNum; i++) {//为什么i++没有变化,
if (num % i == 0) {
System.out.print("false");
return false;
}
问题出在不管你num多大,num和1取模都是0,那么循法的第一次条件就成立了,直接返回了,不再执行循环了
你的循环只有一次,主体跳出后没有执行i++的必要了