📌  相关文章
📜  检查一个数字是否是另一个数字的幂(1)

📅  最后修改于: 2023-12-03 15:26:44.455000             🧑  作者: Mango

检查一个数字是否是另一个数字的幂

当我们需要检查一个数字是否是另一个数字的幂时,可以使用对数函数,因为如果一个数 x 是另一个数 y 的幂,则存在一个正整数 n,使得 x = y^n。因此,如果我们能找到 n,那么 x 就是 y 的幂。

下面是一个 Python 代码片段,可以检查一个数字是否是另一个数字的幂:

import math

def is_power(x, y):
    """
    判断 x 是否是 y 的幂
    :param x: int
    :param y: int
    :return: bool
    """
    if x == 1:
        return True
    elif x < y:
        return False
    else:
        n = int(math.log(x, y) + 0.5)
        return y ** n == x

在上面的代码中,我们使用了 Python 的 math 模块中的 log 函数来计算以 y 为底,x 的对数,并将其转换为整数 n。然后我们检查 y 的 n 次幂是否等于 x。

以下是使用上面的函数来检查数字的示例:

print(is_power(16, 2)) # True, 因为 16 = 2^4
print(is_power(27, 3)) # True, 因为 27 = 3^3
print(is_power(10, 2)) # False, 因为 10 不是 2 的幂
print(is_power(81, 9)) # True, 因为 81 = 9^2

这里我们依次检查 16 是否是 2 的幂,27 是否是 3 的幂,10 是否是 2 的幂,81 是否是 9 的幂。

在这个例子中,我们使用了 math 模块中的 log 函数来计算以 y 为底,x 的对数,并将其转换为整数 n。然后我们检查 y 的 n 次幂是否等于 x。

以上是一个简单的示例,可以用来检查数字是否是另一个数字的幂。