Входной файл: input.txt Выходной файл: output.txt Время на тест: 1 секунда Ограничение на память: 16 MB Автор задачи: Метельский И.С. Авторское решение:Pascal Тесты к задаче:Скачать
Заработав много денег, "Василий" решил заняться научной деятельностью. Он занимался ей в течение всего лишь года и сделал два важных научных открытия.
1) Доказательство теоремы Ферма. "Василий" доказал Великую теорему Ферма: "Для того, чтобы уравнение x^n+y^n=z^n имело решения, необходимо и достаточно, чтобы n не превосходило 2 (n - натуральное)". Ниже приведено доказательство (взято из книги "Личное дело больного №156", изд. "Психиатрическая лечебница "Новинки"" (1)): "Так как n<=2, то n=1 или n=2. Раз мы не можем исследовать проблему в общем виде, рассмотрим каждый из случаев отдельно. Если n=1, то уравнение имеет решение, например x=1, y=1, z=2. Если n=2, то уравнение тоже имеет решение x=3, y=4, z=5. Значит, если n не превосходит двух, то уравнение имеет решения, что и требовалось доказать." Из этого доказательства видно, что "Василий" был очень одаренным и даже, можно сказать, гениальным математиком. Следующее открытие подтверждает эту догадку.
2) Способ хранения дробных чисел в памяти компьютера. Этот способ состоял в следующем (цитируется из (1)): "Рассмотрим дробь N/M, 1<=N<M, M - натуральное. Представим ее в виде N/M=1/X1+1/X2+...+1/Xk. Тогда вместо хранения N и M можно хранить X1,X2,...,Xk." Рассмотрим следующий пример, раскрывающий исключительную полезность этого способа. Пусть N=5, M=6, тогда 5/6=1/2+1/3 и вместо хранения 5 и 6 можно хранить числа, в два раза меньшие: 2 и 3 (экономия - 2 бита). К сожалению, "Василий" не описал, как найти числа X1, X2, ...,Xk. Эту задачу придется решить за него Вам.
Задание.
По введенным N и M найдите такие X1, X2, ..., Xk, что X1<X2<...<Xk и 1/X1+1/X2+...+1/Xk=N/M. Если существует несколько решений, то выведите то из них, у которого значение X1 минимально. Если неоднозначность не снимается, то выведите решение с минимальным X2 и т. д.
Ввод.
Единственная строка входного файла будет содержать числа N и M, разделенные одним пробелом.
Вывод.
Выведите найденные числа X1,X2,...,Xk по одному числу в строке в указанном порядке.
Пример.
input.txt
output.txt
5 6
2
3
Ограничения.
1<=N<M<=2*10^9; тесты будут такими, что значение K не превысит 15.