论坛首页 入门技术论坛

求质数的优化算法示例

浏览 9516 次
该帖已经被评为新手帖
作者 正文
   发表时间:2006-12-26  
http://www.blogjava.net/renyangok/archive/2006/11/20/82278.html
看看我转的这篇文章吧,好几种权威的方法呢
0 请登录后投票
   发表时间: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中
0 请登录后投票
   发表时间:2006-12-26  
这个还可以再优化,只需要求模“2到'M的平方根'之间的质数”就可以了,也就是除你上面的list里面的元素,list初始时需要放入一个2,从2开始找质数,一直找到M的平方根,最后把list里面N以后的元素返回。
0 请登录后投票
   发表时间:2006-12-27  
给楼主两个建议吧

1 以后不要起这么有"诱惑性"的标题名字
到现在我也没明白你为什么认为你那个算法是"优化"的
那不优化的算法是什么样的?遍历从2到n?
地球上任何一个小学毕业的人都不会那么做的

2 "正在学习datastructure和algorithm中" 看到这句话就不舒服
数据结构 和 算法 真的比 datastructure和 algorithm 难输入吗?
其实我老鄙视那种成天说话夹着英文的人了
一没有国外背景 二不是港澳台胞 大家都是中国人 何必呢
datastructure和algorithm 又不像 spring hibernate这类的东西是专有名词 你就直接写中文呗 
我四级才30多分 专业英语开卷 在文曲星的帮助下我才61分 :'(

以上只是些我个人的看法  没有攻击的意思
只是些建议 别多想哈

0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics