Números racionales expresables finitamente en una base numérica

Un número es expresable finitamente si puedes escribirlo en forma de punto flotante y usar solo una cantidad finita de dígitos.

  • 1/3 no es expresable finitamente en base 10 porque requiere una cantidad infinita de dígitos para escribirse: 0.333333 ...
  • 3/2 es expresable finitamente en base 10 porque requiere solo dos dígitos: 1.5

Crea una función que reciba como argumentos un número racional en forma de tupla y una base numérica, y devuelva true si el racional es expresable finitamente en la base numérica y false en caso contrario.

isFinitelyExpressible((numerator, denominator), number_base)

Ejemplos

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

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

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

Notas

  • Los números racionales que se te proporcionen estarán expresados en su forma irreducible.
  • Python no tiene precisión infinita de punto flotante, por lo que escribir un número en una base no funcionará y las bases de las pruebas serán bastante grandes.