Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 3의 거듭제곱


숫자 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