Python編程算法【四十二】回文素數(shù)
【案例內(nèi)容】
? ? 所謂回文素數(shù)指的是,對一個整數(shù)n從左向右和從右向左讀其數(shù)值都相同且n為素數(shù),則稱整數(shù)n為回文素數(shù)。請求出所有不超過1000的回文素數(shù)。
【解題思路】
? ? 本題的解答思路:可設(shè)定兩個函數(shù),分別處理相應(yīng)的操作。第一個函數(shù)用來判斷一個數(shù)是否素數(shù),此函數(shù)已在之前的案例中寫過多次,這里不再贅述。
? ? 第二個函數(shù)是用來判斷一個數(shù)是否為回文數(shù),針對本題來說,常規(guī)做法是將一個數(shù)的每一位,分別取出來,如果是三位數(shù),就把百位當(dāng)個位,個位當(dāng)百位,重新組合成一個新的數(shù),然后判斷這個新的數(shù)是否與原數(shù)相等,如果是那么該數(shù)就是回文數(shù)。兩位數(shù)以此類推。另一種”非常規(guī)“做法,就是先把該數(shù)轉(zhuǎn)成str(字符型),然后直接就可以倒序,反轉(zhuǎn)后無需再重新轉(zhuǎn)回int(數(shù)值型),即可判斷原數(shù)與倒序后的數(shù),是否相等,如果相同就是回文數(shù)。
? ? 最后,同時用這兩個函數(shù)判斷,如果均為True,則表示該數(shù)是回文素數(shù)。具體代碼如下:
【Python代碼】


? ? 注意兩個函數(shù)的返回值是bool(布爾值),用for循環(huán)時可直接從11開始,提高效率。循環(huán)時用if語句結(jié)合兩個函數(shù),即可求出1000以內(nèi)的回文素數(shù)。
標(biāo)簽: