Алгоритм вычисления значения функции 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) чётные.
НА ПИТОНЕ!
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)
Объяснение:
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)