Олимпиадный тренинг

Задача . C. Вы все уже победители!


На всеми известной тестирующей системе MathForces устраивается розыгрыш \(n\) единиц рейтинга. Раздача рейтинга будет происходить по следующему алгоритму: если в мероприятии принимает участие \(k\) участников, то \(n\) рейтинга поровну распределяется между ними и округляется в сторону ближайшего меньшего целого числа. По окончании распределения может остаться неиспользованный рейтинг — он не достаётся никому из участников.

К примеру, если \(n = 5\) и \(k = 3\), то каждый участник получит \(1\) единицу рейтинга, а также \(2\) единицы рейтинга останутся неиспользованными. Если же \(n = 5\), а \(k = 6\), то ни у кого из участников не увеличится рейтинг.

Вася участвует в этом розыгрыше рейтинга, но не владеет информацией об общем количестве участников этого мероприятия. Поэтому он хочет узнать, какие различные значения приращения рейтинга он может получить в результате этого розыгрыша, и просит Вас о помощи.

Например, если \(n=5\), то искомый ответ равен последовательности \(0, 1, 2, 5\). Каждое из значений последовательности (и только они) может быть получено как \(\lfloor n/k \rfloor\) для некоторое подходящего целого положительного \(k\) (где \(\lfloor x \rfloor\) — округлённое вниз значение \(x\)): \(0 = \lfloor 5/7 \rfloor\), \(1 = \lfloor 5/5 \rfloor\), \(2 = \lfloor 5/2 \rfloor\), \(5 = \lfloor 5/1 \rfloor\).

Напишите программу, которая по заданному \(n\) находит последовательность всех возможных приращений рейтинга.

Входные данные

В первой строке входных данных записано целое число \(t\) (\(1 \le t \le 10\)) — количество наборов входных данных в тесте.

Далее следуют описания \(t\) наборов входных данных, по одному описанию в строке. Каждая строка содержит целое число \(n\) (\(1 \le n \le 10^9\)) — суммарное количество разыгрываемого рейтинга.

Выходные данные

Выведите ответы на \(t\) заданных наборов входных данных. Каждый ответ должен состоять из двух строк.

В первой строке выведите число \(m\) — количество различных значений приращения рейтинга, которые может получить Вася.

В следующей строке выведите \(m\) различных чисел — сами значения приращения рейтинга в порядке возрастания.


Примеры
Входные данныеВыходные данные
1 4
5
11
1
3
4
0 1 2 5 
6
0 1 2 3 5 11 
2
0 1 
3
0 1 3

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя