擅长:python、mysql、java
<p>您的代码中有一些地方要么是错误的,要么是可以改进的</p>
<ol>
<li>您可以使用<code>[2, 3]</code>而不是<code>[2]</code>初始化素数,这允许您从<code>candidate=3</code>开始,并将其递增2而不是1,因为2是唯一的偶数素数</李>
<li><code>i = 0</code>在代码中没有意义</li>
<li><code>prep</code>仅用于测试<code>candidate</code>是否为素数。一旦您发现<code>candidate % prime</code>是<code>True</code>,您就可以<code>break</code>退出for循环,如果您已经找到一个除数,则无需继续测试它</李>
<li>代码中最大的错误是:所有素数都不是回文。你当然知道,但这是你写的。从11开始,只向列表中添加回文素数(例如,您可以测试并看到13不在<code>primes</code>)。删除<code>if</code>中的<code>and candidate_sr == candidate_sr_rev</code>,以便正确地将素数添加到列表中。由于需要第<code>n</code>个素数,因此有两种选择:</li>
</ol>
<ul>
<li>要么定义第二个列表<code>palindromic_primes</code>,将遇到的每个回文素数添加到该列表中,并测试其长度是否等于<code>n</code></li>
<li>或者只保留遇到的回文素数,当这个数等于<code>n</code>时,可以返回这个回文素数</李>
</ul>