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.