Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem n có chia hết cho lũy thừa của 2 mà không sử dụng toán tử số học trong Python hay không

Giả sử chúng ta có hai số x và n. Chúng ta phải kiểm tra xem x có chia hết cho 2 ^ n hay không mà không sử dụng toán tử số học.

Vì vậy, nếu đầu vào là x =32 n =5, thì đầu ra sẽ là True là 32 =2 ^ 5.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • nếu x AND (2 ^ n - 1) bằng 0, thì
    • trả về True
  • trả về Sai

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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

Đầu vào

32, 5

Đầu ra

True