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

N이 Python에서 집합 {A, B}의 숫자로 구성된 숫자로 나눌 수 있는지 확인하십시오.

<시간/>

숫자 n이 있다고 가정합니다. 또 다른 두 개의 숫자와 b가 있습니다. n을 나누는 and b를 사용하여 숫자를 생성할 수 있는지 확인해야 합니다.

따라서 입력이 n =115, a =3, b =2와 같으면 115는 2와 3으로 구성된 23으로 나눌 수 있으므로 출력은 True가 됩니다.

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

  • util() 함수를 정의합니다. temp, b, n
  • 이 소요됩니다.
  • temp> n이면
    • 거짓을 반환
  • n이 온도로 나누어지면

    • 참 반환
  • util(temp * 10 + a, a, b, n) 또는 util(temp * 10 + b, a, b, n) 중 하나 이상이 true이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
  • 기본 메소드에서 util(a, a, b, n) 또는 util(b, a, b, n) 중 하나 이상이 true이면 true를 반환하고 그렇지 않으면 false를 반환합니다.

예시

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

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))

입력

115, 2, 3

출력

True