Єгипетські дроби#1818

Єгипетські дроби

1 секунда
64 мегабайти
Дуже легка

У часи Середнього царства Єгипту єгиптяни винайшли спосіб запису дробів. Якщо додати символ до ієрогліфа для цілого числа, це позначало обернене для цього числа. Це дозволяло легко записувати дроби вигляду (одинична дріб) — достатньо додати символ оберненого до ієрогліфа для .

Не було прямого способу запису дробу вигляду , де m > 1. Замість цього такий дріб записували як суму одиничних дробів. Наприклад, дріб можна записати як:

prb1818-4
prb1818-3

Зверніть увагу, що кілька сум дають той самий результат; наприклад, також можна записати як:

prb1818-5
prb1818-2
prb1818-6
prb1818-7

Ваша задача — взяти дріб та подати її сумою одиничних дробів (жадібний алгоритм): на кожному кроці віднімаємо найбільшу можливу одиничну дріб із залишку — доки не отримаємо нуль. Наприклад, для дробу жадібний пошук знайде суму за три кроки:

prb1818-8

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

prb1818-9
prb1818-10
prb1818-11
prb1818-12
prb1818-13

Щоб розв'язання не стало занадто громіздким, додатково вимагається: щоразу після віднімання дріб має залишатися зі знаменником строго менше . Наприклад, для дробу перші дві одиничні дроби й , залишиться . На цьому кроці найбільша одинична дріб — , залишок:

prb1818-14
prb1818-15

Ця дріб має знаменник більший за , тому її не можна використовувати. Беремо наступну — , далі залишок:

prb1818-16
prb1818-17

Тепер знаменник підходить (менший за ), цю дріб можна використати, і фінальна відповідь — .

У цьому прикладі пропускалася лише одна дріб. В загальному випадку доводитиметься пропускати багато дробів. Під час пошуку виникають обчислення з великими знаменниками — подбайте про ефективність, інакше програма буде повільною.

Коректно використовуйте типи даних, що можуть містити великі значення. Хоча знаменники обмежено , проміжні значення можуть сягати 10^{12}. Потрібне 64-бітове ціле число (long у Java, long long у C/C++).

Жадібний алгоритм завжди дозволяє знайти розклад зі знаменниками менше , бо будь-яку дріб можна розкласти хоча б через її знаменник. Наприклад:

prb1818-18

Вхідні дані

prb1818-2

Вхід складається з послідовності дробів, по одній у рядку. У кожному рядку — два цілих числа і , 1 < M < N < 100, відповідно до дробу . і — взаємно прості. Кінець — .

Вихідні дані

prb1818-2

Для кожної вхідної дроби виведіть рядок — числа D_1 \le D_2 \le D_3 \le \dots такі, що

prb1818-19

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

Приклади

Приклад 1

Loading
Loading