Задача состоит в том, чтобы найти наибольшее множество S натуральных чисел такое, что сумма квадратов элементов из S равна заданному числу n.
Например:
4 = 2²
20 = 4² + 2²
38 = 5² + 3² + 2²
300 = 11² + 8² + 7² + 6² + 4² + 3² + 2² + 1².
У меня есть алгоритм, который выполняется во времени O(2^(sqrt n) * n)
, но он слишком медленный (каждое подмножество квадратов).