1、自幂数的定义
自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
n为1时,自幂数称为独身数。显然,0,1,2,3,4,5,6,7,8,9都是自幂数;
n为2时,没有自幂数;
n为3时,自幂数称为水仙花数,有4个:153 ,370 ,371 ,407 ;
n为4时,自幂数称为四叶玫瑰数,共有3个:1634 ,8208 ,9474 ;
n为5时,自幂数称为五角星数,共有3个:54748 ,92727 ,93084 ;
n为6时,自幂数称为六合数, 只有1个:548834 ;
n为7时,自幂数称为北斗七星数, 共有4个:1741725 ,4210818 ,9800817 , 9926315 ;
n为8时,自幂数称为八仙数, 共有3个:24678050 ,24678051 ,88593477 ;
n为9时,自幂数称为九九重阳数,共有4个:146511208 ,472335975 ,534494836 912985153。
2、判断该数是否为自幂数
例如:当n为3时,有13 + 53 + 33 = 153 ,153即是n为3时的一个自幂数。
输入一个位数未知的非负整数,判断该数是否为自幂数。
输入: 一个非负整数,0<num<100000000
输出: 满足自幂数要求输出yes ,否则输出 no
样例输入: 1634
样例输出: yes
错误代码:
正确代码:
python">num = int(input())
sum = 0
count = len(str(num))
#tmp = num
#while tmp!=0:#tmp = tmp//10#count += 1
tmp = num
while tmp!= 0:n = tmp%10sum += n**counttmp = tmp//10if sum == num:print("yes")
else:print("no")
3、输出num1和num2之间所有的自幂数
描述: 输入整数num1和整数num2 ,输出num1和num2之间所有的自幂数。 ( 0<num1<1000000000 ,0<num2<1000000000 )
输入: 输入为两行,第一行为num1,第二行为num2。
输出: num1~num2或num2~num1之间(包含num1、 num2 )所有的自幂数。
样例输入: 1000 100
样例输出: 153 370 371 407
python">num1 = int(input())
num2 = int(input())
max_num = max(num1, num2)
min_num = min(num1, num2)for i in range(min_num, max_num+1):count = len(str(i)) sum = 0tmp = iwhile tmp!=0:n = tmp%10sum += n**counttmp = tmp//10if sum == i:print(i)