Форум » Динамическое программирование » Задача 125 (где простые числа) - не сходится ответ » Ответить

Задача 125 (где простые числа) - не сходится ответ

R2-D2: В задаче № 125 Не сходится ответ (должно быть 65 , а получается 881) Исполнитель Вычислитель преобразует число на экране. У исполнителя есть две команды, которым присвоены номера: 1. Прибавить 2 2. Сделать простое Первая команда увеличивает число на экране на 2, вторая – получает ближайшее бóльшее простое число. Сколько существует программ, для которых при исходном числе 2 результатом является число 45 и при этом траектория вычислений содержит число 14 и не содержит числа 33? [pre2] def simple(x): k=0 for i in range (1,x+1): if x%i==0: k+=1 if k==2: return 1 else: return 0 def f(n,n14): if n==14: n14=1 if n>45 or n==33: ans=0 elif n==45 and n14==1: ans=1 else: ns=n+1 while simple(ns)!=1: ns+=1 ans=f(n+2,n14)+f(ns,n14) return ans print (f(2,0))[/pre2]

Ответов - 2

EugeneJobs: Попробуйте решить вручную. Не могу логику из кода понять.

Поляков: Спасибо за замечание. Вы правы. По согласованию с автором ответ исправлен на 881.



полная версия страницы