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

파이썬에서 숫자가 3의 거듭제곱의 합인지 확인하는 프로그램

<시간/>

숫자 n이 있다고 가정하면 n을 3의 고유한 거듭제곱의 합으로 나타낼 수 있는지 여부를 확인해야 합니다. y =3^x인 정수 x가 존재하는 경우 정수 y는 3의 거듭제곱이라고 합니다.

따라서 입력이 n =117과 같으면 117 =3^4 + 3^3 + 3^2 + =81 + 27 + 9이므로 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 16에서 0 사이의 i에 대해 1 감소, 수행

    • n>=3^i이면

      • n :=n - 3^i

  • n> 0이면

    • 거짓을 반환

  • 참을 반환

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(n):
   for i in range(16, -1, -1):
      if n >= pow(3,i):
         n -= pow(3,i)

   if n > 0:
      return False

   return True

n = 117
print(solve(n))

입력

117

출력

True