Python练习(12) -易

问题描述

素数的平方是回文,即正读和反读相同。比如11 * 11=121,
求不超过1000的平方回文素数。

  • 分析
    构造素数判断函数;
    构造判断回文的函数;
    遍历1000以内的数,找到素数;
    判断该数的平方是否满足回文,且不超过1000;

代码

# 素数判断函数
def huiwen(i):
    if int(str(i)[::-1])==i:
        return True
# 回文判断函数    
import math
def sushu(n):             
    for k in range(2,int(math.sqrt(n)+1)):
        if n%k==0:
            return False
    return True
# 循环,寻找符合条件的素数
c=[]
for i in range(2,1000):
    if sushu(i):      #判定素数
        b=i*i
        if huiwen(b):  #判定回文
             c.append(i)
print c            
# 结果
[2, 3, 11, 101, 307]

猜你喜欢

转载自blog.csdn.net/qq_43243022/article/details/82960532