【发布时间】:2018-05-11 09:41:02
【问题描述】:
所以我试图找到 10,001 个素数。是的,它是 euler #7 问题。我写的代码似乎给了我从 3 到 10,001 的所有素数,但我的答案仍然不正确。我知道还有其他关于此的问题已经得到解答,但窃取别人的代码并不能帮助我学习。所以我正在寻找我在哪里出错的洞察力。首先,我分离出所有奇数并将它们添加到列表中。我注意到列表中有一些素数的平方,所以我对照从 2 到 10,0001 的每个数字的平方检查列表。那应该只给我留下素数,但我仍然得到错误的答案。任何想法都会很棒,谢谢
prime = [i for i in range(2, 10002) if i % 2 != 0]
for i in range(2, 10002):
if i * i in prime:
prime.remove(i * i)
print(prime[-1])
【问题讨论】:
-
15 不是平方数。
-
您是在寻找第 10001 个素数,还是小于 10001 的最大素数?它们是不同的问题。
-
我试图找到第 10001 个素数。
-
你在生成‘prime’后看过了吗?因为它不是,你认为它是什么。另外:第五个素数>5。
-
@Piinthesky - 哇,刚刚点击了。所以你告诉我,因为我的范围设置为 10002,所以列表的高度不足以达到第 10001 个素数,对吗?
标签: python python-3.x primes primality-test