Python Prime数字生成器Numpy

时间:2012-08-20 18:04:34

标签: python numpy generator fft

我不是程序员,但我正在学习,

有人可以帮我理解FFT是什么吗?我如何在python代码中实现它,例如说一个python代码来生成从1到10000的素数?

也有人建议NumPy,我下载并安装它,但不知道它做了什么。它与FFT有关吗?

任何帮助都将不胜感激。

此致 babsdoc

2 个答案:

答案 0 :(得分:1)

好的,我将忽略所有关于fft的事情(这与信号处理有关,而不是素数)。

最着名的基本和着名方法是seive of Eratosthenes。维基百科有一个很好的视觉示例,说明它的工作原理。

在(未经测试的)Python中,您可以按如下方式对其进行编码:

max_val = 1000
seive = range(max_val)
seive[0] = None  # 1 is not prime!
for x in range(1, max_val):
    if seive[x]:
        print "{prime} is prime.".format(prime = x)
        # now remove multiples of prime x from the seive
        y = 2*x 
        while y <= max_val:
            seive[y] = None
            y = y + x

答案 1 :(得分:0)

使用此处的建议功能"Python: Checking if a number is prime"

我建议您使用以下代码:

def isprime(number):  
if number<=1:  
    return 0  
check=2  
maxneeded=number  
while check<maxneeded+1:  
    maxneeded=number/check  
    if number%check==0:  
        return 0  
    check+=1  
return 1 
prime_list = [i for i in xrange(1,1001) if isprime(i)]
print prime_list

>>> [3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, ...

将xrange( 1,1001 )调整到您想要的范围,即可获得所有素数