[Previous line repeated
995 more times]
То есть, у вас глубина стека ограничена 1000 вызовов. Если проанализировать функцию, то видно, что при n = 1 и m > 1 глубина стека вызовов будет m.
Таким образом у вас два варианта - переписать функцию или ограничить циклы до ~990.
Кроме того, функция симметрична относительно порядка аргументов. Значит внутренний цикл можно начитать не с 1, а с a+1.
Ну или решить задачу аналитически.Данная функция реализует алгоритм нахождения наибольшего общего делителя методом Евклида. F(n, m) = X означает, что n = iX, m = jX, где i и j - натуральные числа и
i != j.
n + m = (i + j)X.
Минимальная пара i и j будет 1 и 2. Минимальное значение X, большее 15 будет 16.
Получаем n = 16, m = 32, F(16, 32) = 16, n + m = 48.