所以我可以用一种更简单的方法来实现,但是我只是在用涉及列表的纯函数来练习,我无法实现。我知道我是在作弊,不提排除1之类的事情,也不通过只制表奇数来节省处理时间,这不是我的重点。指针?在
def is_prime(n):
for i in range(2, n+1):
if n % i == 0:
return False
return True
def listprimes_upto(n):
result = []
for i in range(2, n):
if is_prime(i):
result.append(i)
return result
print(listprimes_upto(50))
(以下是更简单的非列表版本,效果很好):
^{pr2}$
你是错的。您必须使用}。在
range(2,n)
,否则您将始终从函数中获得False
。因为,很明显,范围内的最后一个i
将是n
和{见Sieve of Eratosthenes - Finding Primes Python
埃拉托斯提尼筛法是寻找素数的一种更快的方法。在
this似乎是在Python中寻找素数的最快解决方案。本页还有许多其他实现函数的不同方法的示例,以查找质数,尽管这些示例中没有一个创建第二个is_素数函数,将其作为练习留给您去解决。在
试试这个,当你使用大数字时,效率是代码的10倍。在
相关问题 更多 >
编程相关推荐