A37716. 问题描述1.判断一个正整数是否为自幂数;2.自幂数是指 N 位数各位数字 N 次方之和是本身,如 153 是 3 位数,其每位数的3次方之和是 153 本身,因此 153 是自幂数,1634 是 4 位数,其每位数的 4 次方之和是 1634 本身;3.首先输入一个整数 M 表示随后有 M 行每行有一个整数,输出每个整数是否为自幂 数,如是则输出 T,否则 F。输入描述1.输入正整数 M(1 <…
填空题
中等
知识点
题目描述
问题描述
1.判断一个正整数是否为自幂数;
2.自幂数是指 N 位数各位数字 N 次方之和是本身,如 153 是 3 位数,其每位数的3次方之和是 153 本身,因此 153 是自幂数,1634 是 4 位数,其每位数的 4 次方之和是 1634 本身;
3.首先输入一个整数 M 表示随后有 M 行每行有一个整数,输出每个整数是否为自幂 数,如是则输出 T,否则 F。
输入描述
1.输入正整数 M(1 <= M <= 100)。不考虑输入不合规情形如负数、负整数、零或 其他字符串等;
2.从第 2 行开始,输入 M 行每行一个正整数(1 <= M <= 2147483647);
3.特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所有 input()函数不可有提示信息。
输出描述
1.输出对应正整数是否为自幂数,如是则输出一个英文字母 T,否则一个英文字母 F;
2.特别提示:注意输出字母为大写,小写将判为错误,前后没有空格等。
样例输入 1
3
152
111
153
样例输出 1
F F T
样例输入 2
5
8208
548834
88593477
12345
5432
样例输出 2
T T T F F
参考答案
#自幂数
N = int(input()) #输入数据的数量
for i in range(N):
M = int(input()) #输入判断的数
howDigit = 0
#获得输入整数的位数 tmp = M
while tmp != 0:
howDigit += 1
tmp //= 10 #执行完本步,M 将减少 1 位
tnt = 0
tmp = M
#计算各位幂次方的和
while tmp != 0:
tnt = tnt+ ( tmp % 10) ** howDigit
tmp //= 10
#判断是否为自幂数
if tnt == M:
print("T")
else:
print("F")
上一题
下一题