用于查找第n个素数的Python脚本

时间:2017-12-31 01:55:45

标签: python if-statement range primes factoring

我是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]

谢谢! 安德鲁

2 个答案:

答案 0 :(得分:0)

这可以是一个开始。这将检查数字N是否可以被2int(sqrt(N)) + 1的所有数字整除,其中int函数截断N的平方根.python中的all()函数返回{ {1}}如果列表的所有成员都满足某些条件(此处不为零)。您应该设置一个上限,因为这对于非常大的True来说效率不高。我会把它留给你。

n

使用this进行测试。

答案 1 :(得分:-1)

试试这样吗?

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