<p>给定整数n(1<;=n<;=300),代码需要返回第n个回文素数</p>
<p>我已经编写了下面的代码块来实现上述功能,但就我的一生而言,我无法理解为什么我的代码没有输出给定的预期值。
事实上,我甚至不知道是我的代码错了,还是给定的期望值只是牛市。非常感谢您的指导</p>
<p><strong>预期输出</strong>:symmetricPrime2(72)返回70507</p>
<p><strong>实际输出</strong>:symmetricPrime2(72)返回30103</p>
<pre><code>def symmetricPrime2(n,candidate=2):
primes = [2]
counter = 1
while True:
i = 0
prep = 0
candidate = candidate + 1
candidate_sr = str(candidate)
#test if candidate is prime
for prime in primes:
if candidate%prime == 0:
prep += 1
#test if candidate is palindromic
candidate_sr_rev = candidate_sr[len(candidate_sr)::-1]
if prep == 0 and candidate_sr == candidate_sr_rev:
primes.append(candidate)
if len(primes) == n:
break
return primes[-1]
</code></pre>