您好,登錄后才能下訂單哦!
這篇文章主要介紹python如何實現自冪數,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
前文介紹過 python 實現水仙花數,其實水仙花數為自冪數的一種,即,3位自冪數。
自冪數是指一個 n 位數,它的每個位上的數字的 n 次冪之和等于它本身。(例如:當n為3時,有1^3 + 5^3 + 3^3 = 153,153即是n為3時的一個自冪數)
自冪數-百度百科
一位自冪數:獨身數 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
。。。
前文已實現過水仙花數,只需要將函數稍微修改下,根據數據長度判斷冪次,就可計算任意范圍的自冪數
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如何實現自冪數”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。