📜  查找给定的整数是否为3的幂(1)

📅  最后修改于: 2023-12-03 14:55:36.107000             🧑  作者: Mango

判断给定整数是否为3的幂

判断一个给定的整数是否为3的幂可以通过以下两种方式实现:

方法一:使用循环

我们可以用循环来不断地将3乘以自身,直到它大于或等于给定的整数n。如果最后得到的值正好等于n,那么n就是3的幂。否则,n不是3的幂。

def is_power_of_three(n: int) -> bool:
    if n <= 0:
        return False
    while n % 3 == 0:
        n //= 3
    return n == 1

| 参数 | 描述 | |----|----| | n | 给定的整数 |

示例

assert is_power_of_three(27) == True
assert is_power_of_three(9) == True
assert is_power_of_three(45) == False
方法二:使用对数

我们可以利用对数的性质来判断一个数是否为3的幂。具体地,如果一个数n是3的幂,那么log3(n)一定是一个整数。我们可以利用数学函数库中的log函数来计算log3(n)的值,然后判断它是否为整数。

import math

def is_power_of_three(n: int) -> bool:
    if n <= 0:
        return False
    x = math.log(n, 3)
    return abs(round(x) - x) < 1e-10

| 参数 | 描述 | |----|----| | n | 给定的整数 |

示例

assert is_power_of_three(27) == True
assert is_power_of_three(9) == True
assert is_power_of_three(45) == False
总结

以上就是两种判断给定整数是否为3的幂的方法。具体采用哪种方法实现,应根据具体问题以及性能需求进行选择。