Codeforces Round 372 (Div. 1) |
---|
Закончено |
Кодер ZS играет в игру. В игре есть число, которое отображается на экране и две кнопки, ' + ' (плюс) и '' (квадратный корень). Изначально на экране отображается число 2. В игре всего n + 1 уровень и Кодер ZS начинает на уровне 1.
Когда Кодер ZS находится на уровне k, он может:
В дополнение, после каждого хода, если Кодер ZS находится на уровне k и число на экране равно m, то m должно делиться на k. Заметьте, что это условие проверяется только после нажатия на кнопку, к примеру, если Кодер ZS находится на уровне 4 и текущее число равно 100, он нажимает кнопку '' и число становится равным 10. В этот момент 10 не делится на 4, однако нажатие все же корректно, так как после него Кодер ZS находится на уровне 5, а 10 делится на 5.
Кодеру ZS'у нужна ваша помощь в прохождении игры — он хочет достичь уровня n + 1. Другими словами, ему нужно нажать кнопку '' n раз. Помогите ему определить, сколько раз ему следует нажимать кнопку ' + ' перед нажатием кнопки '' на каждом уровне.
Заметьте, что Кодер ZS хочет найти любую последовательность нажатий, позволяющую достичь уровня n + 1, но не обязательно такую, в которой число нажатий минимально.
Первая и единственная строка входных данных содержит единственное целое число n (1 ≤ n ≤ 100 000), означающее, что Кодер ZS хочет достичь уровня n + 1.
Выведите n неотрицательных целых чисел, по одному в строке. i-ое из них должно равняться количеству раз, сколько Кодеру ZS'у нужно нажать кнопку ' + ' перед нажатием кнопки '' на уровне i.
Каждое число не должно превышать 1018. Впрочем, число на экране может превышать 1018.
Гарантируется, что хотя бы одно решение существует. Если существует несколько решений, выведите любое из них.
3
14
16
46
2
999999999999999998
44500000000
4
2
17
46
97
В первом примере из условия:
На первом уровне, Кодер ZS нажимает кнопку ' + ' 14 раз (а число на экране изначально равно 2), так что число становится равным 2 + 14·1 = 16. Затем Кодер ZS нажимает кнопку '' и число становится равным .
После этого, на втором уровне, ZS нажимает кнопку ' + ' 16 раз, так что число становится равным 4 + 16·2 = 36. Затем ZS нажимает кнопку '', переходя на следующий уровень и меняя число на .
Наконец, на третьем уровне, ZS нажимает кнопку ' + ' 46 раз, так что число становится равным 6 + 46·3 = 144. После этого он нажимает кнопку '' опять, меняя число на .
Число 12 безусловно делится на 4, так что Кодер ZS может достигнуть уровня 4.
Заметьте так же, что нажатие кнопки ' + ' 10 раз на третьем уровне перед переходом на следующий уровень не работает, так как число станет равным 6 + 10·3 = 36, и когда кнопка '' будет нажата, число станет , а Кодер ZS окажется на уровне 4. Впрочем, 6 не делится на 4, так что это неправильное решение.
Во втором примере из условия:
На первом уровне Кодер ZS нажимает кнопку ' + ' 999999999999999998 раз (а число на экране изначально равно 2), так что число становится равным 2 + 999999999999999998·1 = 1018. Затем Кодер ZS нажимает кнопку '' и число становится равным .
После этого, на втором уровне, ZS нажимает кнопку ' + ' 44500000000 раз, так что число становится равным 109 + 44500000000·2 = 9·1010. Затем ZS нажимает кнопку '', переходя на следующий уровень и меняя число на .
Число 300000 делится на 3, так что Кодер ZS может достигнуть уровня 3.
Название |
---|