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.