/*
打印1到100之間的質(zhì)數(shù)(只有1和他本身的約數(shù))
分析:
應(yīng)該先遍歷
然后判斷是否為質(zhì)數(shù)
*/
public class Test
{
public static void main(String args[])
{
/*
boolean flag=false;
long start=System.currentTimeMillis();//獲取當(dāng)前系統(tǒng)的毫秒數(shù)
for(int i=2;i<=10000;i++)//先遍歷
{
for(int j=2;j<i;j++)
{
if(i%j==0)//可以除進(jìn)
flag=true;
}
if(flag==false)
{
System.out.println(i);
}
flag=false;
}
long end=System.currentTimeMillis();
System.out.println("所花費(fèi)的時(shí)間為"+(end-start));
*/
//優(yōu)化算法
//添加break
boolean flag=false;
long start=System.currentTimeMillis();//獲取當(dāng)前系統(tǒng)的毫秒數(shù)
for(int i=2;i<=10000;i++)//先遍歷
{
for(int j=2;j<Math.sqrt(i);j++)//使用數(shù)學(xué)技巧,遍歷到i的平方根就可以了
{
if(i%j==0)//可以除進(jìn)
flag=true;
break;
}
if(flag)//這里也進(jìn)行改變
{
System.out.println(i);
}
flag=false;
}
long end=System.currentTimeMillis();
System.out.println("所花費(fèi)的時(shí)間為"+(end-start));
}
}
聯(lián)系客服