求质数的算法
求质数的算法
比如,求10 000 000中有多少个质数
质数是只能被1和自己整除的自然数(不包括1)。
笨办法就是一个个计算,用到两层嵌套的循环,数字一大算死人,代码如下:
public class PrimeNumbers { public static void main(String[] args) { final int max = 100; int count = 0; boolean flag = true; for (int i = 2; i <= max; i++) { for (int j = 2; j < i; j++) { if (i % j == 0) { flag = false; break; } flag = true; } if (flag) { count++; } } System.out.println("质数数是:" + count); } }
运行时间,如果求100 000以内的质数,大概2800毫秒,决定每次运行程序时系统的软硬件情况,不过就是这个数量级,没有大的变化。
那么如果不是质数,这个数就是合数,合数的最小因数小于它的平方根。
好了,聪明一点的办法来了,时间大大节省。
public class PrimeNumbers { public static void main(String[] args) { final int max = 100; int count = 0; boolean flag = true; for (int i = 2; i <= max; i++) { for (int j = 2; j <= Math.sqrt(i); j++) { if (i % j == 0) { flag = false; break; } flag = true; } if (flag) { count++; } } System.out.println("质数数是:" + count); } }
运行时间,如果求100 000以内的质数,大概30毫秒,决定每次运行程序时系统的软硬件情况,没有大的变化。
两次运行时间相差两个数量级,算法重要吗,当然很重要!
还有更好的算法吗?思考ing···
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java中递归和循环的优劣
Java中递归和循环的优劣 介绍: 你用你手中的钥匙打开一扇门,结果去发现前方还有一扇门,紧接着你又用钥匙打开了这扇门,然后你又看到一扇门......但是当你开到一扇门时,发现前方是一堵墙无路可走了,你选择原路返回--这就是递归。 但是如果你打开一扇门后,同样发现前方也有一扇门,紧接着你又打开下一扇门.....但是却一直没有碰到尽头--这就是循环。 简单来说:循环是有去无回,而递归是有去有回(因为存在终止条件)。 循环:当满足某一条件时反复执行某一操作(循环体)。 递归:在一个方法内部对自身进行调用的方法。 递归结构包括两个部分: 1、递归头:即什么时候不调用自身方法,也就是递归的结束条件。如果没有递归头,程序将陷入死循环。 2、递归体:即什么时候需要调用自身方法。 好了,废话不多说,直接来撸代码(计算阶乘的方法)。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 package com.bjwyj.method;...
- 下一篇
纪念 Vamei
偶然在某公众号里看到一篇文章,得知 Vamei 去世的消息。 看到它之前,我并不知道这位“知名的 Python 技术博主”。我写 Python 技术文章有一小段时间了,也认识了很多圈内的博主。但是,这个 Vamei 是谁呢?竟不认识。我很好奇。 因为消息是从豆瓣里传出来的,我就去搜他的豆瓣。然后,一路看到了他的知乎,他的书,他的技术博客,他的演讲,他的微博,甚至他的公众号,也看到了一些友人的纪念文章。 看得越多,我就越放不下了。正好我在写一篇荐书栏目,就发现他跟我恰巧同时在读着一本未上市的新书。这个难得的巧合让我更不能释怀,我自以为这是一个神秘主义的讯息。 该拿他怎么办呢?我决定就写下这篇东西,以作纪念吧。 (1)一首诗 他在豆瓣的最后一篇日记是一首诗: 《寻影》 远处的光臆造身前的影。 影高而大, 噬我,缠绕我,御我为奴。 我与影欢歌。 倏忽, 光灭影消。 黑漆漆的我, 不知何处寻影。 发布时间 2 月 21 日,距离世日期仅一周。 一个臆造的高大的影,吃人奴役人,然而他说,与影欢歌。这是哪种的乐?是愚者后知后觉,还是英雄苦中寻乐? 光灭影消,不去寻光,却要找影,为什么?是因为没有了...
相关文章
文章评论
共有0条评论来说两句吧...