自幂数判断

题目描述

自幂数是指,一个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’。

样例输入 1 

3
152
111
153

样例输出 1 

F
F
T

样例输入 2 

5
8208
548834
88593477
12345
5432

样例输出 2 

T
T
T
F
F

代码

#include <iostream>
#include <cmath>
using namespace std;
int main(){
    int a,b;
    cin>>a;
    for(int i=1;i<=a;i++){
        cin>>b;
        int c=0;
        int d=b,e=0;
        while(d){
           d/=10;
            e++;
        }
        d=b;
        while(d){
            c+=pow(d%10,e);
            d/=10;
        }
        if(c==b)
            cout<<"T"<<endl;
        else
            cout<<"F"<<endl;
    }
 return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值