锁定老帖子 主题:求质数的优化算法示例
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-26
http://www.blogjava.net/renyangok/archive/2006/11/20/82278.html
看看我转的这篇文章吧,好几种权威的方法呢 |
|
返回顶楼 | |
发表时间:2006-12-26
首先谢谢fins & ddandyy & renyangok 以及各位的热心参与,这是我第一次在JAVAEYE上发布的第一篇article,对比了你们给的建议,最后测试还是遍历2到n的平方根最为捷径(快).代码如下:
[color=violet] public class PrimeNumberDemo{ public static void main(String[] args){ int number = 10;// 初始化number,即[N,M]中N的值 boolean isPrime = true; System.out.println("The First prime numbersare \n"); List<Integer> list = new LinkedList<Integer>(); while (true) { isPrime = true; int tempSqrt = (int) Math.sqrt(number); for (int divisor = 2; divisor <= tempSqrt; divisor++) { if (number % divisor == 0) { isPrime = false; break; } } if (isPrime) list.add(number); number++; if (number >= 100000) // 100000即代表M的值 break; } for (int primenumber : list) System.out.println(primenumber); } }[/color] 正在学习datastructure和algorithm中 |
|
返回顶楼 | |
发表时间:2006-12-26
这个还可以再优化,只需要求模“2到'M的平方根'之间的质数”就可以了,也就是除你上面的list里面的元素,list初始时需要放入一个2,从2开始找质数,一直找到M的平方根,最后把list里面N以后的元素返回。
|
|
返回顶楼 | |
发表时间:2006-12-27
给楼主两个建议吧
1 以后不要起这么有"诱惑性"的标题名字 到现在我也没明白你为什么认为你那个算法是"优化"的 那不优化的算法是什么样的?遍历从2到n? 地球上任何一个小学毕业的人都不会那么做的 2 "正在学习datastructure和algorithm中" 看到这句话就不舒服 数据结构 和 算法 真的比 datastructure和 algorithm 难输入吗? 其实我老鄙视那种成天说话夹着英文的人了 一没有国外背景 二不是港澳台胞 大家都是中国人 何必呢 datastructure和algorithm 又不像 spring hibernate这类的东西是专有名词 你就直接写中文呗 我四级才30多分 专业英语开卷 在文曲星的帮助下我才61分 :'( 以上只是些我个人的看法 没有攻击的意思 只是些建议 别多想哈 |
|
返回顶楼 | |