Ограничения: время – 800ms/1600ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
В 1770 году Варинг предположил, что для каждого натурального числа `k` существует
некоторое `s` такое, что любое натуральное число может быть представлено в виде суммы не более чем `s`
`k`-х степеней некоторых натуральных чисел. Например, любое натуральное число можно представить как сумму не более 4 квадратов или 9 кубов
или 19 четвертых степеней. Эта гипотеза была доказана Гильбертом в 1909 году.
Более сложной проблемой является представление натурального числа в виде суммы `k`-х степеней простых чисел.
Даже предположение Гольдбаха, что любое число, большее 1, можно представить в виде суммы не более чем 3 простых чисел (для `k=1`),
было доказано только в 2013 году.
Математик Гэри Селдон доказал в 12010 GE (23596 году), что любое число, большее 23, можно представить в виде суммы не более 8 квадратов простых чисел.
Напишите программу, которая находит представление заданного числа из минимального количества квадратов простых чисел.
Первая строка ввода содержит одно целое число `N` (`24<=N<=10^7`).
Вывести в первой строке одно целое число `K` (`1<=K<=8`) -- минимальное количество слагаемых.
Во второй строке вывести `K` простых чисел, сумма квадратов которых равна `N`.
Если существует несколько вариантов для такого представления, то можно вывести любой вариант из них, в любом порядке.
```sample Пример ввода
1001
```
```sample Пример вывода
6
2 3 3 3 3 31
```