Números racionais expressáveis finitamente em uma base numérica

Um número é expressável finitamente se você pode escrevê-lo na forma de ponto flutuante e usar apenas uma quantidade finita de dígitos.

  • 1/3 não é expressável finitamente na base 10, pois requer uma quantidade infinita de dígitos para ser escrito: 0.333333 ...
  • 3/2 é expressável finitamente na base 10, pois requer apenas dois dígitos: 1.5

Crie uma função que receba como argumentos um número racional na forma de uma tupla e uma base numérica, e retorne true se o racional for expressável finitamente na base numérica e false caso contrário.

isFinitelyExpressible((numerator, denominator), number_base)

Exemplos

isFinitelyExpressible((1, 3), 10) ➞ False
# 0.3333...

isFinitelyExpressible((4, 1), 10) ➞ True
# 4

isFinitelyExpressible((4, 7), 2)  ➞ False
# 0.1001001...

Observações

  • Os números racionais fornecidos estarão na forma irredutível.
  • O Python não tem precisão infinita de ponto flutuante, então escrever um número em uma base não funcionará e as bases nos testes serão bastante grandes.