Обозначим через a%b остаток от деления натурального
Функция F(n), где n — неотрицательное целое число, задана следующими соотношениями:
F(n) = 1, если n = 0;
F(n) = (n%10) · F(n//100), если
F(n) = F(n//100), если n > 0 и
Определите количество таких целых k, что 107 ≤ k ≤ 9 · 107 и F(k) = 25.
Для примера найдем значение F(12345):
Рассмотрим значение F(1234):
То есть алгоритм считает произведение цифр стоящих на четных местах числа, если цифра нечетная. При этом нас интересуют только числа, произведение нечетных цифр которого, стоящих на четных местах, дают
Всего число у нас состоит
На остальных четных местах могут стоять числа 0, 1, 2, 4, 6, 8
На первом месте в числе могут стоять цифры 1, 2, 3, 4, 5, 6, 7, 8
На остальных нечетных местах могут стоять любые цифры (таких позиций
Посчитаем количество чисел из
Ответ: 1 728 000.
Приведём решение на языке Python.
def f(n):
if n == 0:
return 1
if n%2!=0:
return (n%10)*f(n//100)
if n%2==0:
return f(n//100)
count = 0
for x in range(10**7,9*10**7+1):
if f(x)==25:
count += 1
print(count)

