Python script to find nth prime number

北慕城南 提交于 2019-12-13 10:53:17

问题


I'm new to Python and I thought I'd try to learn the ropes a bit by writing a function to find the nth prime number, however I can't get my code to work properly. No doubt this is due to me missing something fundamental, but I'd appreciate your help in finding where it went wrong!

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]

Thanks! Andrew


回答1:


This can be a start. This checks whether the number N is divisible by all numbers from 2 to int(sqrt(N)) + 1, where the int function truncates the square root of N. The all() function in python returns True if all members of a list satisfy some condition (here not zero). You should set an upper bound as this is not very efficient for really large n. I'll leave that to you.

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

Tested with this.




回答2:


Try like this?

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


来源:https://stackoverflow.com/questions/48039350/python-script-to-find-nth-prime-number

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!