查询指数

时间:2016-10-08 14:57:09

标签: python-2.7 exponent

检查数字x是否可以表示为x的数字之和与幂y的好方法。

例如,512可以工作,因为5 + 1 + 2 = 8,而8 ^ 3 = 512。    我只需要一般方法的帮助,而不是代码。

谢谢!

1 个答案:

答案 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