Java质数输出优化

题目是这样的,输出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,这是做什么用的呢。计算机高速计算时,你如果让他每次计算都输出也会拖慢他的速度,所以我们定义一个新变量,每次找到质数时装到这个变量里++就可以了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容