Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python – 주어진 정수가 4의 거듭제곱인지 확인하는 방법

주어진 숫자가 4의 거듭제곱인지 확인해야 하는 경우, 정수를 매개변수로 받는 check_power_of_4라는 이름의 메서드를 정의하면 됩니다. 이 메서드는 나머지 연산자(%)와 나눗셈 연산자(//)를 활용해 조건을 검사한 뒤, 결과에 따라 True 또는 False를 반환합니다.

예시

아래는 실제 동작을 보여주는 예시 코드입니다.

def check_power_of_4(my_val):
   if (my_val == 0):
      return False
   while (my_val != 1):
      if (my_val % 4 != 0):
         return False
      my_val = my_val // 4

   return True

my_num = 64
print("The number to be checked is : ")
print(my_num)

if(check_power_of_4(my_num)):
   print(my_num, 'is a power of 4..')
else:
   print(my_num, 'is not a power of 4..')

출력 결과

The number to be checked is :
64
64 is a power of 4..

코드 설명

  • check_power_of_4라는 이름의 메서드를 정의하고, 검사할 숫자를 매개변수로 전달받습니다.

  • 입력값이 0이면 4의 거듭제곱이 될 수 없으므로 False를 반환합니다.

  • 값이 1이 아닌 동안 반복문을 돌며, 나머지 연산자(%)로 4로 나눈 나머지가 0이 아닌 경우 False를 반환합니다.

  • 나머지가 0이라면 나눗셈 연산자(//)를 사용해 값을 4로 나누고, 값이 1이 될 때까지 이 과정을 반복합니다.

  • 모든 검사를 통과하면 최종적으로 True를 반환하여 해당 숫자가 4의 거듭제곱임을 의미합니다.

  • 메서드 외부에서 검사할 숫자(64)를 정의하고 콘솔에 출력합니다.

  • 정의된 숫자를 인자로 넘겨 메서드를 호출하고, 그 결과에 따라 적절한 문장을 출력합니다.

참고 사항

이 알고리즘은 숫자를 4로 계속 나누기 때문에 시간 복잡도는 O(log n)입니다. 또한 음수나 1 미만의 값은 4의 거듭제곱이 아니므로, 필요에 따라 입력값 범위 검사를 추가하면 더욱 견고한 코드가 됩니다.