eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Ланцюговий дріб

Ланцюговий дріб

Ланцюговий дріб, це вираз вигляду: \includegraphics{https://static.e-olymp.com/content/a8/a80ced277fa542eaaff90f9afaecdf89e469ebd7.jpg} У цьому виразі \textbf{a0} є цілим числом, а інші \textbf{a_n} - додатними цілими числами. Ланцюгові дроби цікаві тим, що з їх допомогою може бути записане довільне дійсне число. При цьому для раціональних чисел дріб буде кінцевим, а для ірраціональних - нескінченим. Наприклад, для числа \textbf{9/4} представлення у вигляді ланцюгово дробу таке:\textbf{ 9/4 = 2 + 1/(3+1/1)}. Але цей же дріб можна представити і так: \textbf{9/4 = 2 + 1/4}. Ваша задача полягає у тому, щоб знайти мінімальне представлення у вигляді ланцюгового дробу для заданого раціонального \textbf{p/q}. \InputFile Перший рядок вхідного файлу містить два цілих числа: \textbf{p} и \textbf{q} (\textbf{1} <= \textbf{p}; \textbf{q} <= \textbf{10^3}). \OutputFile У першому рядку вихідного файлу виведіть число \textbf{n} елементів ланцюгового дробу, який дорівнює \textbf{p/q}. У другому рядку через пропуск виведіть числа \textbf{a_0}, \textbf{a_1}, ..., \textbf{a_n}.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
9 4
Вихідні дані #1
2
2 4