python實現(xiàn)自冪數的示例代碼
1、什么是自冪數?
前文介紹過 python 實現(xiàn)水仙花數,其實水仙花數為自冪數的一種,即,3位自冪數。
自冪數是指一個 n 位數,它的每個位上的數字的 n 次冪之和等于它本身。(例如:當n為3時,有1^3 + 5^3 + 3^3 = 153,153即是n為3時的一個自冪數)
2、自冪數包括:
一位自冪數:獨身數 0-9
兩位自冪數:沒有
三位自冪數:水仙花數 153,370,371,407
四位自冪數:四葉玫瑰數 1634,8208,9474
五位自冪數:五角星數 54748,92727,93084
六位自冪數:六合數 548834
七位自冪數:北斗七星數 1741725,4210818,9800817,9926315
八位自冪數:八仙數 24678050,24678051,88593477
九位自冪數:九九重陽數 146511208,472335975,534494836,912985153
十位自冪數:十全十美數 4679307774
。。。
3、實現(xiàn)
前文已實現(xiàn)過水仙花數,只需要將函數稍微修改下,根據數據長度判斷冪次,就可計算任意范圍的自冪數
def number_self_power_y(m=100, n=1000):
if type(m) is int and type(n) is int and 0 <= m < n:
my_range = (x for x in range(m, n))
for num in my_range:
sum = 0
p = len(str(num)) # 冪
a = [int(s) for s in str(num)] # 數
for i in a:
sum += i ** p # 和
if num == sum:
yield num
elif type(m) is not int or type(n) is not int:
raise Exception('參數類型錯誤')
elif m < 0 or m > n:
raise Exception('參數超出范圍')
n = number_self_power_y(0, 10000000) print([i for i in n])

到此這篇關于python實現(xiàn)自冪數的示例代碼的文章就介紹到這了,更多相關python 自冪數內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python如何實現(xiàn)不用裝飾器實現(xiàn)登陸器小程序
這篇文章主要介紹了python如何實現(xiàn)不用裝飾器實現(xiàn)登陸器小程序,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-12-12
python matplotlib繪圖,修改坐標軸刻度為文字的實例
今天小編就為大家分享一篇python matplotlib繪圖,修改坐標軸刻度為文字的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
python socket 超時設置 errno 10054
這篇文章主要介紹了python 遠程主機強迫關閉了一個現(xiàn)有的連接 socket 超時設置 errno 10054 ,需要的朋友可以參考下2014-07-07
python求numpy中array按列非零元素的平均值案例
這篇文章主要介紹了python求numpy中array按列非零元素的平均值案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06

