方法一
public static void main(String[] args) {
boolean isFlag=true; //标志i是否被j整除
for(int i=2;i<=100;i++) {
for(int j=2;j<i;j++) {
if(i%j==0) {
isFlag=false;
}
}
if(isFlag==true) {
System.out.println(i);
}
isFlag=true;
}
}
方法二
public static void main(String[] args) {
boolean isFlag=true; //标志i是否被j整除
for(int i=2;i<=100;i++) {
for(int j=2;j<i;j++) {
if(i%j==0) {
isFlag=false;
break;
//优化一:但只对本身非质数的自然数
}
}
if(isFlag==true) {
System.out.println(i);
}
isFlag=true;
}
}
方法三
public static void main(String[] args) {
boolean isFlag=true; //标志i是否被j整除
for(int i=2;i<=100;i++) {
for(int j=2;j<=Math.sqrt(i);j++) { //优化二
if(i%j==0) {
isFlag=false;
break;
}
}
if(isFlag==true) {
System.out.println(i);
}
isFlag=true;
}
}
检验
可以将循环次数调大,用long start=System.currentTimeMillis();检验优化后速度是否变快
方法四
public static void main(String[] args) {
label:for(int i=2;i<=100;i++) {
for(int j=2;j<=Math.sqrt(i);j++) {
if(i%j==0) {
continue label;
}
}
System.out.println(i);
}
}