Python 查找第 n 个素数的脚本
Python script to find nth prime number
我是 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]
谢谢!
安德鲁
这样试试?
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(sqrt(N)) + 1
的所有数字整除,其中 int
函数截断 N 的平方根。[=22] 中的 all()
函数=] returns True
如果列表的所有成员都满足某个条件(这里不是零)。您应该设置一个上限,因为这对于非常大的 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。
我是 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]
谢谢! 安德鲁
这样试试?
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(sqrt(N)) + 1
的所有数字整除,其中 int
函数截断 N 的平方根。[=22] 中的 all()
函数=] returns True
如果列表的所有成员都满足某个条件(这里不是零)。您应该设置一个上限,因为这对于非常大的 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。