编程题:N 位自幂数
N 位自幂数是指一个 N 位数, 它的每一位上的数字的 N 次幂之和等于它本身。我们把三位自幂数称为水仙花数、四位自幂数称为四叶玫瑰数、五位自幂数称为五角星数、六位自幂数称为六合数、七位自幂数称为北斗七星数、八位自幂数称为八仙数、九位自幂数称为九九重阳数、十位自幂数称为十全十美数。
### 输入格式:
在一行中输入一个 3 至 10 位的正整数 N。
### 输出格式:
例如:输入正整数 371,如果 $$3^3 + 7^3 + 1^3 = 371$$,则输出371是水仙花数,否则输出371不是自幂数
### 输入样例1:
in
371
### 输出样例1:
out
371是水仙花数
### 输入样例2:
in
45789
### 输出样例2:
out
45789不是自幂数
### 输入样例3:
in
1741725
### 输出样例3:
out
1741725是北斗七星数
答案:若无答案欢迎评论
string_number = input()
number = int(string_number)
length = len(string_number)
ans = 0
number_name = ('水仙花数', '四叶玫瑰数', '五角星数', '六合数', '北斗七星数', '八仙数', '九九重阳数', '十全十美数')
for n in string_number:
ans += int(n) ** length
if ans == number:
print(f'{number}是{number_name[length-3]}')
else:
print(f'{number}不是自幂数')
### 输入格式:
在一行中输入一个 3 至 10 位的正整数 N。
### 输出格式:
例如:输入正整数 371,如果 $$3^3 + 7^3 + 1^3 = 371$$,则输出371是水仙花数,否则输出371不是自幂数
### 输入样例1:
in
371
### 输出样例1:
out
371是水仙花数
### 输入样例2:
in
45789
### 输出样例2:
out
45789不是自幂数
### 输入样例3:
in
1741725
### 输出样例3:
out
1741725是北斗七星数
答案:若无答案欢迎评论
string_number = input()
number = int(string_number)
length = len(string_number)
ans = 0
number_name = ('水仙花数', '四叶玫瑰数', '五角星数', '六合数', '北斗七星数', '八仙数', '九九重阳数', '十全十美数')
for n in string_number:
ans += int(n) ** length
if ans == number:
print(f'{number}是{number_name[length-3]}')
else:
print(f'{number}不是自幂数')