自幂数是指,一个 N 位数,满足各位数字 N 次方之和是本身。例如,153 是 3 位数,其每位数的 3 次方之和,13+53+33=153,因此 153 是自幂数;1634 是 4 位数,其每位数的 4 次方之和,14+64+34+44=1634,因此 1634 是自幂数。现在,输入若干个正整数,请判断它们是否是自幂数。
输入第一行是一个正整数 M,表示有 M 个待判断的正整数。约定 1≤M≤100。
从第 2 行开始的 M 行,每行一个待判断的正整数。约定这些正整数均小于 108。
输出 M 行,如果对应的待判断正整数为自幂数,则输出英文大写字母 T,否则输出英文大写字母 F。
提示:不需要等到所有输入结束在依次输出,可以输入一个数就判断一个数并输出,再输入下一个数。
3
152
111
153
F
F
T
5
8208
548834
88593477
12345
5432
T
T
T
F
F
//自幂数判断
#include <cmath>
#include <iostream>
using namespace std;
int main() {
int n, num, sum, l;
cin >> n;
for (int i = 0; i <= n; i++) {
cin >> num;
int cmp = num, cmp1 = cmp;
while (cmp1) {
cmp1 /= 10;
l++;
}
while (num) {
sum += pow(num % 10, l);
num /= 10;
}
if (sum == cmp)
cout << 'T' << endl;
else
cout << 'F' << endl;
sum = 0, l = 0;
}
}