擅长:python、mysql、java
<p>由于您正在做一个ProjectEuler难题,显然您需要对代码进行注释,而不是解决方案。在</p>
<p>您的代码:</p>
<pre><code>counter = 3
primes = [1]
while len(primes) < 10002:
for i in range(2, counter):
if counter % i == 0:
counter += 1
else: # Mis-aligned else (assuming it's intended for the if)
primes.append(counter)
counter += 1
print counter
</code></pre>
<ol>
<li>您的<code>else</code>与<code>if</code>不一致</li>
<li>您的<code>for</code>循环一直到<code>counter</code>,根据自身测试可除性一定会找到余数0。在</li>
<li>您的<code>else</code>子句将为<code>counter</code>的每个非因子命中。大多数数字不是一个因素,所以你不想在这种情况下采取行动。而是在<code>if</code>部分触发时跳出循环。在</li>
<li>在退出for循环之后,您需要检查是否找到了一个因子,如果没有,请将<code>counter</code>添加到素数列表中。在</li>
</ol>
<p>看起来你正在尝试实现一个天真的未优化的暴力搜索,这很好。在</p>
<p>在编码之前,可以尝试用文字或伪代码写出算法。在</p>