''' Пример 16.6. Алгоритм вычисления функции F(n), где n — натуральное число, задан следующими соотношениями: F(n) = n; при n = 1; F(n) = 5n/3 + F(n/3) ; если n > 1 и делится на 3; F(n) = n + F(n + 3); если n > 1 и не делится на 3: Най ти минимальное значение n, для которого F(n) определено и больше 50. ''' def F(n): if n == 1: return n if n % 3 == 0: return 5*n//3 + F(n//3) else: return n + F(n + 3) for n in range(1, 100): try: res = F(n) if res > 50: print(n) break except: pass