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

Kiểm tra xem N có chia hết cho một số bao gồm các chữ số từ tập hợp {A, B} hay không trong Python

Giả sử chúng ta có một số n. Ta có hai số a và b khác. Chúng tôi phải kiểm tra xem chúng tôi có thể tạo ra một số bằng cách sử dụng a và b chia cho n.

Vì vậy, nếu đầu vào là n =115, a =3, b =2, thì đầu ra sẽ là Đúng vì 115 chia hết cho 23 được tạo thành từ 2 và 3.

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

  • Xác định một hàm use (). Điều này sẽ mất thời gian, a, b, n
  • nếu temp> n, thì
    • trả về Sai
  • nếu n chia hết cho tạm thời thì

    • trả về True
  • trả về true khi có ít nhất một trong số các hàm exp (temp * 10 + a, a, b, n) hoặc exp (temp * 10 + b, a, b, n) là đúng, ngược lại là false
  • Từ phương thức main trả về true khi có ít nhất một trong số các hàm ut (a, a, b, n) hoặc ut (b, a, b, n) là đúng nếu không thì sai

Ví dụ

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

def util(temp, a, b, n):
   if temp > n:
      return False
   if n % temp == 0:
      return True
   return util(temp * 10 + a, a, b, n) or util(temp * 10 + b, a, b, n)
def solve(n, a, b):
   return util(a, a, b, n) or util(b, a, b, n)
n = 115
a = 3
b = 2
print(solve(n, a, b))

Đầu vào

115, 2, 3

Đầu ra

True