检查数字x是否可以表示为x的数字之和与幂y的好方法。
例如,512可以工作,因为5 + 1 + 2 = 8,而8 ^ 3 = 512。 我只需要一般方法的帮助,而不是代码。
谢谢!
答案 0 :(得分:0)
import math
def check(n):
# sum digits and take the logarithm of input according to sum
l = math.log(n, sum(int(e) for e in str(n)))
# if diff is very small, then yes it can be expressed
return l - int(l) < 1e-6, int(l) # skip second if only check is needed
check(4) # True, 1
check(512) # True, 3
check(511) # False, 3