题目是这样的,输出100以内的所有质数,首先我们应该怎么做
在这里我写一个优化前的代码

质数输出
到这里算输出完了100以内的所有质数,但是如果代码是这样子,只能说马马虎虎的完成了。
接下来把他优化一下,为了让大家更明显的看出来优化的效果,我们在代码里加入一个类叫做System class里面有个方法叫做currentTimeMillis() 他返回的是一个long型的时间以毫秒为单位,这样我们就可以计算算法优化的时间差了。但是现在我们例题里的100太小了,不足以让大家感受到差别,我们把100改为100000,然后我们先跑一下看看没有优化之前的花费时间。

优化前的花费时间是33秒829
我们的优化思路是,从2一直判断到一百以内的最后一个质数97很复杂,我们用97的根号9来计算,只需要从2到9就能判断出是否为质数。
把内层循环里的i改变成根号i,在这里我们调用Java里另一个类Math class,里面的方法sqrt,这个方法是表示一个开方的意思。
接下来进行优化

优化后
大家会看到优化后的100000以内的质数为9657个,计算所花费的时间竟然只有329毫秒!!!!甚至不足一秒,效率翻了很多倍!
大家会发现我上面定义了一个新变量叫做count,这是做什么用的呢。计算机高速计算时,你如果让他每次计算都输出也会拖慢他的速度,所以我们定义一个新变量,每次找到质数时装到这个变量里++就可以了。