Если N четное / нечетное, нам нужно четное / нечетное количество нечетных чисел в сумме. Это уже наполовину число возможных решений. Например. для N = 14 нет смысла проверять любые комбинации, где P нечетно.
Переписав приведенную формулу, получим:
N = A + (A+1) + (A+2) + ... + (A+P-1)
= P*A + 1 + 2 + ... + (P-1)
= P*A + (P-1)P/2 *
= P*(A + (P-1)/2)
= P/2*(2*A + P-1)
Последняя строка означает, что N должно делиться на P / 2, это также исключает ряд возможностей. Например. 14 имеет только эти делители: 1, 2, 7, 14. Таким образом, возможные значения для P будут 2, 4, 14 и 28. 14 и 28 управляются нашими по очевидным причинам (фактически, любой P выше N / 2 может быть игнорируется).
Это должно быть намного быстрее, чем метод грубой силы.
(* сумма первых n натуральных чисел равна n (n + 1) / 2)