Есть задача в ; есть ее решение, где по изяществу Python ""победил"" C#, но вот у же на х=512 вылетает RecursionError: что посоветуете, отцы? Как преодолеть, если хочется посчитать для х=1024 скажем?
nimport functools nfrom math import sqrtn@functools.lru_cache()ndef f(x):n if x <=1: retu 0n retu 1 + min([ f(m + x // m - 2) for m in range(1,int(sqrt(x))+1) if x%m ==0])nnдобавлю после первого ответа:
nКто предложит как изменить алгоритм?
nКстати. Добавил количество рекурсии до 5000. Получается странная фигня. для 1024 считает, делая 3600 итераций, а для 2048 - ""выбивает"" интерпретатор на 1000+ рекурсии. Вообще не пойму - в чем проблема....
question@mail.ru
·