【发布时间】:2015-08-21 04:32:11
【问题描述】:
完美幂是一个正整数,可以表示为另一个正整数的整数幂。
任务是检查给定整数是否是完美幂。
这是我的代码:
def isPP2(x):
c=[]
for z in range(2,int(x/2)+1):
if (x**(1./float(z)))*10%10==0:
c.append(int(x**(1./float(z)))), c.append(z)
if len(c)>=2:
return c[0:2]
else:
return None
它适用于所有数字,例如:
isPP2(81)
[9, 2]
isPP2(2187)
[3, 7]
但它不适用于343 (73)。
【问题讨论】:
-
在提出问题时,请尝试始终以对尽可能多的其他人有用的方式提出问题(有类似问题)。例如,标题“完美整数评估失败,输入 343”会更有意义。还请更准确地描述由此产生的问题,然后“不起作用”。它会崩溃吗?导致错误的结果?还是别的什么?
-
感谢您的建议。我是新来的,对不起