Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(n) = n + 3, при n ≤ 18
F(n) = (n//3)*F(n//3) + n - 12, при n > 18, кратных 3
F(n) = F(n-1) + n*n + 5, при n > 18, не кратных 3
Здесь // обозначает деление нацело. Определите количество натуральных значений n из отрезка [1; 800], для которых все цифры значения F(n) чётные.

НА ПИТОНЕ!

bellason bellason    1   11.06.2021 13:22    0

Ответы
turkmenochka75 turkmenochka75  11.07.2021 13:24

def F(n):

   if n <= 18:

       return n+3

   elif n>18 and n%3!=0:

       return F(n-1) + n*n + 5

   else:

       return (n//3)*F(n//3) + n - 12

def help(numb):

   for i in str(numb):

       if int(i)%2==0:

           pass

       else:

           return False

   return True

count=0

for i in range(1,801):

   if help(F(i)):

       count+=1

print(count)

ПОКАЗАТЬ ОТВЕТЫ
marina27081981 marina27081981  11.07.2021 13:24

Объяснение:

def F(n):

  if n <= 18:

      return n+3

  elif n>18 and n%3!=0:

      return F(n-1) + n*n + 5

  else:

      return (n//3)*F(n//3) + n - 12

def help(numb):

  for i in str(numb):

      if int(i)%2==0:

          pass

      else:

          return False

  return True

count=0

for i in range(1,801):

  if help(F(i)):

      count+=1

print(count)

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика