Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(n) = n + 15, при n ≤ 5
F(n) = F(n//2) + n*n*n - 1, при чётных n > 5
F(n) = F(n-1) + 2*n*n + 1, при нечётных n > 5
Здесь // обозначает деление нацело. Определите количество натуральных значений n из отрезка [1; 1000], для которых значение F(n) содержит не менее двух цифр 8.
164
Объяснение:
def F(n):
if n <= 5: return n + 15
if n % 2 == 0: return F(n // 2) + n**3 - 1
else: return F(n-1) + 2*n**2 + 1
cnt = 0
for i in range(1,1001):
eight = 0
k = str(F(i))
for l in k:
if l == '8': eight+=1
if eight == 2:
cnt+=1
break
print(cnt)