【发布时间】:2016-05-29 13:12:14
【问题描述】:
试图创建一个程序,列出设定间隔内的素数(必须在 1 到 500 之间),因此不允许用户输入。到目前为止,这是我的代码:
list=[]
for num in range(1, 500):
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
list.append(str(num))
print(','.join(list))
但是,当我运行此代码时,列表中的某些素数会重复多次,这使得它比应有的长得多。我怎样才能解决这个问题?提前感谢您的帮助。
【问题讨论】:
-
问题是直到你找到一个除以
num的数字i,num被添加到列表中。很简单,您将多次在列表中找到每个素数。事实上,如果n是素数,那么n将出现在n-2次列表中。您还将在列表中包含所有奇数。
标签: python python-3.x primes