Розширення дробів#1018

Розширення дробів

1 секунда
64 мегабайти
Середня

У цій задачі потрібно вивести десятковий розклад, що виходить при діленні двох цілих чисел. Як відомо, десятковий розклад такого дробу може містити послідовність цифр, що повторюється. Необхідно визначити, чи існує така послідовність, що повторюється, і вивести розклад дробу. Вивід слід припинити, коли десятковий розклад закінчується, або коли виявлено послідовність, що повторюється. Якщо є послідовність, що повторюється, потрібно визначити, скільки в ній цифр.

Вхідні дані

Кожен вхідний рядок містить два цілих числа. Перше число — чисельник правильного дробу, друге — знаменник. Чисельник завжди менший за знаменник, а знаменник не перевищує . Ввід закінчується рядком, що містить два нулі.

Вихідні дані

Для кожного вхідного випадку виведіть дві частини розкладу. У першій частині виведіть десятковий дріб, починаючи з десяткової крапки, за такими правилами: якщо розклад скінченний, виведіть його повністю; якщо існує період, виведіть до (але не включаючи) тієї цифри, де період повториться знову. Наприклад, 4/11 = .3636363636\ldots має бути виведено як . (Необхідно знайти найкоротший період — наприклад, у цьому випадку і , і — періоди, але найкоротший — .)

Оскільки ці десяткові розклади можуть бути довгими, кожен рядок першої частини не повинен перевищувати символів (окрім, можливо, останнього рядка), а вивід починається з десяткової крапки.

У рядку після десяткового розкладу виведіть або This expansion terminates. якщо дріб скінченний, або The last digits repeat forever. якщо дріб періодичний, де — кількість цифр у періоді.

Корисна підказка: Кількість цифр у періодичній послідовності не перевищує значення знаменника.

Приклади

Приклад 1

Loading
Loading