De decimal para racional

Published by Evgeny SH in

Encontre a representação racional de um número decimal. O número de entrada é fornecido como uma string no formato whole.between(period). A saída deve ser uma tupla numerator, denominator tal que gcd(numerator, denominator) == 1.

Exemplos

find_fraction("0.4") ➞ (2, 5)

find_fraction("0.1(6)") ➞ (1, 6)

find_fraction("0.(3)") ➞ (1, 3)

find_fraction("0.(142857)") ➞ (1, 7)

find_fraction("0.(012987)") ➞ (1, 77)

Notas

  • O comprimento de uma fração periódica pode ser maior que 20 dígitos.
  • A função deve ser eficiente.