@[TOC]输出范围内的质数以及一些优化
先解决问题
//方法一:
public class PrimeNum {
public static void main(String[] args){
int count=0;
boolean bool=true;//标志
long start=System.currentTimeMillis();
for (int i=2;i<=100000;i++){
//优化二 开根号
for (int j=2;j<=Math.sqrt(i);j++){
if(i%j0){
bool=false;//i被j除尽,把标志置为false
break;//优化一
}
}
if(booltrue){
//优化三 非必要不输出
System.out.println(i);//如果标志未变,该数是质数
count++;
}
bool=true;//重置标志
}
long end=System.currentTimeMillis();
System.out.println(count);
System.out.println(“执行时间为:”+’\t’+(end-start));
}
}
//方法一:
/*public class PrimeNum {
public static void main(String[] args){
int i,j;
int count=0;
long start=System.currentTimeMillis();
for( i=2;i<100000;i++){
for( j=2;j<=i;j++){
if(i%j==0){
break;
}
}
if(j>=i){
//System.out.println(i);
count++;
}
}
long end=System.currentTimeMillis();
System.out.println(count);
System.out.println("执行时间为:"+'\t'+(end-start));
}
}*/
优化
//用带标签的continue优化
public class PrimeNum {
public static void main(String[] args){
int count=0;
long start=System.currentTimeMillis();
lable: for (int i=2;i<=100000;i++){
for (int j=2;j<=Math.sqrt(i);j++){
if(i%j==0){
continue lable;
}
}
count++;
}
long end=System.currentTimeMillis();
System.out.println(count);
System.out.println("执行时间为:"+'\t'+(end-start));
}
}