printРабочее место участника

printЗадачи

1332. Все пути ведут в нуль

Ограничения: время – 500ms/1000ms, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Любое натуральное число (т.е. целое число большее 0) можно представить в виде произведения двух натуральных чисел `X` и `Y`, таких что `X\ ≤\ Y`. Если заменить в этом разложении число `X` на `X-1`, а `Y` на `Y+1`, то после вычисления произведения получим либо новое натуральное число, либо нуль. Например, для числа 12 возможно три варианта разложения `1*12`, `3*4`, `2*6`. Первый вариант дает 0: `(1-1)*(12+1)=0`, второй вариант дает 10: `(3-1)*(4+1)=10`, а третий – 7: `(2-1)*(6+1)=7`. Если результат отличен от нуля, то повторяя эту процедуру над получившимся натуральным числом, мы в конце концов придем к нулю, независимо от выбираемого варианта разложения.
Напишите программу, которая находит все различные числа, которые могут встретиться на пути к 0, при применении данной процедуры к натуральному числу `N`.
Во входном файле в первой строке содержатся натуральное число `N` (`1\ ≤\ N\ ≤\ 10000`).
В выходной файл вывести все найденные числа, в порядке возрастания, начиная с 0. Числа в списке разделяются одним пробелом. Даже если какое-то число встречается на нескольких путях, оно печатается в списке только один раз.

Пример ввода

12

Пример вывода

0 3 4 6 7 10
loading