Решите этот алгоритм
Призрак и тень играли в какую-то игру. Тень дает призраку число n, и призрак должен дать печенье тени. Количество файлов cookie вычисляется как максимальный делитель n (не равный n, конечно). Например, если n = 6, призрак должен дать 3 печенья, в то время как для n = 25 ему нужно дать 5, а если n = 2, ему нужно дать только 1 печенье.
Поскольку Призрак очень умен, он хочет обмануть тень. Он вводит правило, гласящее, что он может разбить n на несколько n1 + n2 + ... + nk = n (здесь k произвольно и k = 1 также возможно), и он даст печенье в соответствии с этими разделенными частями. ni 2, для всех i от 1 до k.
Помогите призраку рассчитать, сколько печенья он должен дать.
Что я уже пробовал:
Мой код работает для разделения числа на две части
Kenneth Haugland
Используйте формулу (k^2+k)/2.