1. 程式人生 > 程式設計 >python列印n位數“水仙花數”(例項程式碼)

python列印n位數“水仙花數”(例項程式碼)

注:所謂n位數“水仙花數”是指一個n數,其各位數字n次方和等於該數本身。如三位數“水仙花數”是指一個三位數,其各位數3次方和等於該數本身。

一、3位數“水仙花數”如下:

list2=[]
for i in range(100,1000):
  str1=str(i)
  sum1=0
  for j in str1:
    num=int(j)
    sum1+=num**3
  if i==sum1:
    list2.append(i)
print(list2)

執行結果:

[153,370,371,407]

二、n位數的水仙花數:

n=4 #n位數的水仙花數,n可自由設定

list2=[]
for i in range(10**(n-1),10**n):
  str1=str(i)
  sum1=0
  for j in str1:
    num=int(j)
    sum1+=num**n
  if i==sum1:
    list2.append(i)
print(list2)

執行結果:

[1634,8208,9474]

三、遍歷3-8位數水仙花數

'''遍歷3-8位數水仙花數'''
for n in range(3,9):
  list2=[]
  for i in range(10**(n-1),10**n):
    str1=str(i)
    sum1=0
    for j in str1:
      num=int(j)
      sum1+=num**n
    if i==sum1:
      list2.append(i)
  print("%d位數水仙花數,共%d個:%s"%(n,len(list2),list2))

執行結果:

3位數水仙花數,共4個:[153,407]

4位數水仙花數,共3個:[1634,9474]
5位數水仙花數,共3個:[54748,92727,93084]
6位數水仙花數,共1個:[548834]
7位數水仙花數,共4個:[1741725,4210818,9800817,9926315]

······第八位資料有點大,五分鐘都沒計算出來

總結

以上所述是小編給大家介紹的python列印n位數“水仙花數”,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!