【问题描述】
1、判断一个正整数是否为自幂数;
2、自幂数是指N位数各位数字 N次方之和是本身,如 153 是 3 位数,其每位数的 3 次方之和是 153 本身,因此 153 是自幂数,1634 是 4 位数,其每位数的 4 次方之和是 1634 本身;
3、首先输入一个整数 M表示随后有 M行每行有一个整数,输出每个整数是否为自幂数,如是则输出 T
,否则 F
。
【输入描述】
1、输入正整数 。不考虑输入不合规情形如负数、负整数、零或其他字符串等;
2、从第 2 行开始,输入 M行每行一个正整数;
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")