【发布时间】:2014-05-07 03:14:55
【问题描述】:
所以我想弄清楚如何找到两个数字之间的所有回文素数。 到目前为止,我的代码可以找到回文,但是当我检查素数时,它也会打印出非素数。并且有多次打印的数字。
你能帮忙吗?
谢谢。
a = 0
b = 500
a += 1
for i in range(a,b):
if(str(i) == str(i)[::-1]):
if(i>2):
for a in range(2,i):
y = True
if(i%a==0):
y = False
break
if y:
print(i)
【问题讨论】:
-
进一步模块化代码可能会有所帮助,即添加
is_prime()函数和is_palindrome()函数。这肯定会让它更具可读性python的标志 -
你
print(i)在回文检查后立即 -
也不要再将
y设置为True。 -
你在测试回文后立即使用打印,而不考虑素数
-
另外,你能解释一下最后一行的用途吗?
标签: python python-3.x primes palindrome