擅长:python、mysql、java
<p>你有两个问题:</p>
<p>首先,您正在搜索<code>for k in range(1, i):</code>。因为每个数,包括素数,都可以被1整除,所以你找不到素数。尝试搜索<code>range(2, i)</code>。你知道吗</p>
<p>其次,您正在检查<code>if i%k != 0:</code>。你应该检查<code>i%k == 0</code>。如果<code>i</code>可被任何数<code>k</code>整除,则该数是<em>而不是</em>素数。你知道吗</p>
<p>事实上,我发现了第三个问题:你有一个off-by-one错误。通过初始化<code>j=0</code>,代码将找到的第一个素数视为“第零个”素数。代码将输出千和第一个素数,而不是千分之一个素数。你知道吗</p>