【发布时间】:2013-08-01 10:46:06
【问题描述】:
我正在从 MIT 开放课件网站自学 Python。我无法仅使用在讲座中学到的信息来完成这项作业。我学到的最后一件事是使用“While”和“For”循环进行迭代。我还没有学过函数。是否可以编写一个仅使用它来计算和打印第 1000 个素数的程序?
到目前为止,这是我的代码:
count = 0
prime = []
candidate = []
x = 2
y = 1
while count < 1000:
x = x+1
if x > 1:
if x%2 != 0:
if x%3 != 0:
if x%5 != 0:
if x%7 != 0:
if x%11 != 0:
if x%13 != 0:
candidate.append(x)
【问题讨论】:
-
如果这个数字能被 17 整除呢?还是 23 岁?
-
不用说:你的方法在扩展方面存在一些问题。我建议你先用谷歌搜索一些不同的方法来计算素数。
-
我还没有走到那一步,因为我想知道是否有更有效的方法来做到这一点。
-
递归可能很容易。
-
尝试用谷歌搜索关键字“埃拉托色尼筛”,然后尝试在代码中实现它,这将对 Euler 项目的其他问题很有用。
标签: python python-2.7