1. 程式人生 > >Python練習(12) -易

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]