【发布时间】:2017-12-31 01:55:44
【问题描述】:
我是 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]
谢谢! 安德鲁
【问题讨论】:
-
对于初学者来说,
l和n在循环内都不会改变,那么循环条件将如何成为False。 -
你必须在循环中调用
l=len(a),然后检查是否l <= n。或者只是删除l=len(a)并将while l<=n替换为while len(a)<=n。 -
每个整数要么是奇数要么是偶数,因此永远不会执行最终的
else: c+=1。 -
谢谢大家,所有非常有用的建议!
标签: python if-statement range primes factoring