任意位數自冪數尋找|Python練習系列[4]


自冪數是指一個n位數,它的每個位上的數字的n次冪之和等於它本身
自冪數包括:獨身數、水仙花數、四葉玫瑰數、五角星數、六合數、北斗七星數、八仙數、九九重陽數、十全十美數

代碼演示視頻

任意位數自冪數尋找完整代碼和注釋如下

#self power 自冪數 自冪數是指一個n位數,它的每個位上的數字的n次冪之和等於它本身 1~10位的自冪數都有各自的名稱
self_power_dict={
						'1':'獨身數',
						'2':'沒有自冪數',
						'3':'水仙花數',
						'4':'四葉玫瑰數',
						'5':'五角星數',
						'6':'六合數',
						'7':'北斗七星數',
						'8':'八仙數',
						'9':'九九重陽數',
						'10':'十全十美數',
						}
def self_power(n):#n為位數
	if n==2:
		return print('兩位數沒有自冪數')
	nums_range=[str(10**(n-1)),str(10**n-1)]#數字范圍
	print('在{}范圍內,{}有:'.format('~'.join(nums_range),self_power_dict[str(n)]),end='')#格式化輸出
	for num in range(10**(n-1),10**n):
		number_list=[]#每位數字的列表
		for x in range(n):#每位數字的位數
			number_list.append(int(str(num)[x])**n)#在數字列表中添加每位數字的n次方值
		if num==sum(number_list):#如果數字等於數字列表每位數字總和
			print(num,end=' ')
self_power(3)#這種算法運算較慢 僅供參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM