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

Python에서 산술 연산자를 사용하지 않고 n이 2의 거듭제곱으로 나눌 수 있는지 확인

<시간/>

두 개의 숫자 x와 n이 있다고 가정합니다. 산술 연산자를 사용하지 않고 x가 2^n으로 나누어 떨어지는지 확인해야 합니다.

따라서 입력이 x =32 n =5와 같으면 출력은 32 =2^5와 같이 True가 됩니다.

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

  • x AND(2^n - 1)가 0이면
    • 참 반환
  • 거짓을 반환

예시

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

def solve (x, n):
   if (x & ((1 << n) - 1)) == 0:
      return True
   return False
x = 32
n = 5
print(solve(x, n))

입력

32, 5

출력

True