java输出100以内的质数
class Ab{
public static void main(String[] args){
boolean isFlag = true; //标识i是否能被j除尽,一旦除尽,修改其值。
for (int i = 2;i <= 100; i++){ //遍历100以内的自然数
for(int j = i-1; j>1; j--){ //j:被i去除
if(i % j == 0){ //i被j除尽
isFlag = false;}
}
if(isFlag == true){
System.out.println(i + "是质数");
}
//重置isFlag
isFlag = true;
}
}
}
或者是这样
class Ab{
public static void main(String[] args){
for (int i = 2;i <= 100; i++){ //遍历100以内的自然数
boolean isFlag = true; //标识i是否能被j除尽,一旦除尽,修改其值。
for(int j = i-1; j>1; j--){ //j:被i去除
if(i % j == 0){ //i被j除尽
isFlag = false;}
}
if(isFlag == true){
System.out.println(i + "是质数");
}
//重置isFlag
//isFlag = true;
}
}
}
优化方式3:
class Ab{ //求100以内的质数
public static void main(String[] args){
long start = System.currentTimeMillis();
for (int i = 2;i <= 10000; i++){ //遍历100以内的自然数
boolean isFlag = true; //标识i是否能被j除尽,一旦除尽,修改其值。
//优化判断,j不要从i-1到1,可以从j-1到sqrt(i)
for(int j = i-1; j>= Math.sqrt(i); j--){ //j:被i去除
if(i % j == 0){ //i被j除尽
isFlag = false;
break; //优化,对非质数只要进行一次判断即可
}
}
if(isFlag == true){
System.out.println(i + "是质数");
}
//重置isFlag
//isFlag = true;
}
long end = System.currentTimeMillis();
System.out.print("程序检索所有质数花费的时间:" + (end - start));
}
}



