欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > python-自幂数判断

python-自幂数判断

2025/1/26 15:39:59 来源:https://blog.csdn.net/2401_83954530/article/details/139545670  浏览:    关键词:python-自幂数判断

[题目描述]:
自幂数是指,一个N 位数,满足各位数字N 次方之和是本身。例如,153153 是 33 位数,其每位数的 33 次方之和,13+53+33=15313+53+33=153,因此 153153 是自幂数;16341634 是 44 位数,其每位数的 44 次方之和,14+64+34+44=163414+64+34+44=1634,因此 16341634 是自幂数。现在,输入若干个正整数,请判断它们是否是自幂数。
输入:
输入第一行是一个正整数M,表示有M 个待判断的正整数。约定 1≤M≤100。
从第 22 行开始的M 行,每行一个待判断的正整数。约定这些正整数均小于 108108。
输出:
输出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

来源/分类(难度系数:一星)

 

完整代码如下:
a=int(input())
b=[]
for i in range(a):
    c=int(input())
    b.append(c)
for j in range(0,len(b)):
    d=b[j]%10
    e=b[j]//10%10
    f=b[j]//100%10
    h=b[j]//1000%10
    k=b[j]//10000%10
    l=b[j]//100000%10
    m=b[j]//1000000%10
    n=b[j]//10000000%10
    s=len(str(b[j]))
    if d**s+e**s+f**s+h**s+k**s+l**s+m**s+n**s==b[j]:
        print("T")
    else:
        print("F")

 

代码解释:
“a=int(input())
b=[]     ”,让用户输入需要判断是否为自幂数的数字的个数,并将其赋给a。建立一个空列表b。
“for i in range(a):
    c=int(input())
b.append(c)    ”,循环a次让用户输入具体需要判断的数,并依次将其存入列表b中。
“for j in range(0,len(b)):
    d=b[j]%10
    e=b[j]//10%10
    f=b[j]//100%10
    h=b[j]//1000%10
    k=b[j]//10000%10
    l=b[j]//100000%10
    m=b[j]//1000000%10
    n=b[j]//10000000%10
s=len(str(b[j]))  ”,遍历列表b中的数字,依次求出其个,十,百,千,万,十万,百万,千万位的数字d,e,f,h,k,l,m,n。然后求出该数字的位数s。
“if d**s+e**s+f**s+h**s+k**s+l**s+m**s+n**s==b[j]:
        print("T")
    else:
        print("F")  ”,根据自幂数的定义判断每次遍历的数字是否为自幂数。如果是,则输出“Yes”;如果不是,输出“No”。

运行效果展示:

f0e2cf85eea24381a67c403ed847d7be.jpg

c4e6124c79ae4ef58af3f892b8554fd8.jpg 

       (声明:以上内容均为原创)

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com