public static void main(String[] args) {
long start = System.currentTimeMillis();//获取当前时间的毫秒数
int count = 0;//记录质数的个数
for(int i = 2;i <= 100000;i++){
boolean isFlag = true;//标识是否没有被除尽过。
for(int j = 2;j < i;j++){//遍历从2开始,到i - 1 范围的自然数
if(i % j == 0){//判断自然数i是否被j整除
isFlag = false;
}
}
if(isFlag){
//System.out.println(i);//质数
count++;
}
//重置isFlag
//isFlag = true;
}
long end = System.currentTimeMillis();//获取当前时间的毫秒数
System.out.println("质数的个数为:" + count);//9592
System.out.println("花费的时间为:" + (end - start));//21270 - 22506
}
public static void main(String[] args) {
long start = System.currentTimeMillis();//获取当前时间的毫秒数
int count = 0;//记录质数的个数
for(int i = 2;i <= 100000;i++){
boolean isFlag = true;//标识是否没有被除尽过。
//优化2:j的范围不用到 i - 1,而是到Math.sqrt()即可。 优化2在优化1添加的前提下,仅对质数有效
for(int j = 2;j <= Math.sqrt(i);j++){
if(i % j == 0){//判断自然数i是否被j整除
isFlag = false;
break;//终止包裹此break关键字的最近的一层循环! 优化1:仅对非质数的自然会有效。
}
}
if(isFlag){
//System.out.println(i);//质数
count++;
}
}
long end = System.currentTimeMillis();//获取当前时间的毫秒数
System.out.println("质数的个数为:" + count);//9592
System.out.println("花费的时间为:" + (end - start));//21270 - 22506 ---优化后:736 --> 17
}
public static void main(String[] args) {
l:for(int i = 2;i <= 100;i++){
for(int j = 2;j <= Math.sqrt(i);j++){
if(i % j == 0){
continue l;
}
}
System.out.println(i);//质数
}
}