找到n素数的Python脚本

2024-04-20 15:30:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,我想通过编写一个函数来查找第n个质数来学习一些诀窍,但是我无法让代码正常工作。毫无疑问,这是由于我遗漏了一些基本的东西,但我希望你能帮助我找出问题所在!在

c=2
n=input("Which prime would you like? ")
n=int(n)
a=[]
l=len(a)

while l<=n:
    if c==2:
        a.append(c)
    elif (c % 2 ==0): #c is even
        break
    elif (c % 2 !=0): #c is odd
        if c<7:
            a.append(c)
        elif c >=7:
            for i in range(3,int((c+1)/2)):
                if (c % i ==0):
                    break
            else:
                a.append(c)
    else:            
        c+=1
a[n]

谢谢! 安德鲁


Tags: 函数代码whichinputifiselseint
2条回答

这样试试?在

print 2

for i in range(3,1000):

    b = False
    for j in range(2,i):
            if i % j == 0:
                b=True

    if b == False:
        print i

这可能是个开始。这检查数字N是否可以被2到{}之间的所有数字整除,其中int函数截断N的平方根。如果列表的所有成员都满足某种条件(这里不是零),python中的all()函数返回{}。您应该设置一个上限,因为这对于非常大的n不是很有效。那就交给你吧。在

def nthprime(n):
    import math
    start = 2
    count = 0
    while True:
        if all([start % i for i in range(2, int(math.sqrt(start)) + 1)]) != 0:
            count += 1
            if count == n:
                return start
        start += 1 



In [91]: nthprime(50)
Out[91]: 229

In [92]: nthprime(100)
Out[92]: 541

this测试。在

相关问题 更多 >