Решаю задачу, не могу понять, как избавиться от бесконечной рекурсии
ЗадачаОпределите наименьшее значение суммы n+m такое, что значение F(n, m) больше числа 15 и выполняется условие n≠m, n и m – натуральные числа. Запишите в ответе сначала значения n и m, при которых указанная сумма достигается, в порядке неубывания, а затем – соответствующее значение F(n, m). Числа в ответе разделяйте пробелом.
Код, данный в задаче:
def F(n,m):
if n<m:
n,m = m,n
if n != m:
return F(n-m,m)
else:
return n
Traceback (most recent call last):
File "main.py", line 12, in <module>
if F(a, b) > 15 and a != b and a + b < minnm:
File "main.py", line 5, in F
return F(n-m, m)
File "main.py", line 5, in F
return F(n-m, m)
File "main.py", line 5, in F
return F(n-m, m)
[Previous line repeated 995 more times]
File "main.py", line 2, in F
if n < m:
RecursionError: maximum recursion depth exceeded in comparison
Мое решение:
def F(n, m):
if n < m:
n, m = m, n
if n != m:
return F(n-m, m)
else:
return n
minnm = 0
for a in range(1, 10000):
for b in range(1, 10000):
if F(a, b) > 15 and a != b and a + b < minnm:
print(a, b, F(a, b))
minnm = a + b