숫자 n이 있다고 가정합니다. 숫자가 3의 거듭제곱인지 아닌지 확인해야 합니다. 따라서 숫자가 n =27, 즉 3의 거듭제곱인 경우 결과는 참이 되고 n =15이면 거짓이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 이 문제를 해결하기 위해 로그를 사용할 것입니다.
- [log10(n) / log10(3)] mod 1 ==0이면 3의 거듭제곱이 되고, 그렇지 않으면 그렇지 않습니다.
예
더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −
class Solution(object): def isPowerOfThree(self, n): """ :type n: int :rtype: bool """ if not n or n<0: return False return (math.log10(n)/ math.log10(3)) % 1 == 0 ob1 = Solution() print(ob1.isPowerOfThree(27)) print(ob1.isPowerOfThree(15)) print(ob1.isPowerOfThree(9)
입력
27 15 9
출력
true false true