论坛首页 编程语言技术论坛

会求100的质数,给8000

浏览 23538 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-04-14  
呵呵 我也来一个  之前看别人的
def genprimes(max):
    numbers = range(2,max+1)
    while numbers:
        yield numbers[0]
        numbers = filter(lambda x: x % numbers[0],numbers[1:])
for x in genprimes(100):
    print x
0 请登录后投票
   发表时间:2011-04-14  
def prime(n):
    pr=[2,3]
    x=pr[-1]+2
    while pr[-1] < n:     
        notPrime=0
        for t in pr:
            if x%t==0:
                notPrime=1
                break
        if notPrime==0:
            pr.append(x)
            x=pr[-1]+2
        else:
            x+=2
    return pr

if __name__=='__main__':
    from timeit import Timer
    t = Timer("prime(100)", "from __main__ import prime")
    print t.timeit(10000)


D:\E1>prime.py
1.21051040751

D:\E1>prime.py
1.67069423318

D:\E1>prime.py
0.722572152219
0 请登录后投票
   发表时间:2011-04-15  
别把小学学的给忘了啊!!

数 1 既不是质数也不是合数。
数 2 是偶数,也是质数,是唯一的是偶质数。

PS:质数也叫素数。

O(∩_∩)O~
0 请登录后投票
   发表时间:2011-04-15  
每次不用把所有的数都除一遍,只要除一下已知的素数就行了,可以这样:

primes = []

for n in range(2, 101):
	for i in primes:
		if n % i == 0:
			break
		elif i ** 2 > n:
			primes.append(n)
			break
	else:
		primes.append(n)

print primes
0 请登录后投票
   发表时间:2011-04-15  
public class Test{
public static void main(String args[]){
for(int i=1;i<=100;i++){
if(isZhiShu(i)){
System.out.println(i);
}
}
}
public static boolean isZhiShu(int i){
if(i==1)return false;

for(int k=2;k<=i/2;k++){
if((i%k)==0)return false;
}
return true;
}
}
0 请登录后投票
   发表时间:2011-04-15  
查了一下:
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着很重要的地位。
还和自己的想的不一样
0 请登录后投票
   发表时间:2011-04-15  
Fermat number 。虽然有bug,但是100内没有问题,估计是毫秒级的
0 请登录后投票
   发表时间:2011-04-16  
1不是质数。。。。。
0 请登录后投票
   发表时间:2011-04-16  
晨曦0911 写道
from math import sqrt
result = [ i for i in range(2, 100) if 0 not in [ i% d for d in range(2, int(sqrt(i))+1)] ]
print result

这才是 python的方式吧
0 请登录后投票
   发表时间:2011-04-18  
进来看了看,程序事小,楼主的最后那段话,使我受益了。不枉点进来看看,特地mark之
0 请登录后投票
论坛首页 编程语言技术版

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