Вопрос:

Нужно было написать программу, которая вычисляет количество чисел n от 1 до 5000, для которых F(n) = 6, где функция F задана рекурсивно: F(0) = 0; F(n) = F(n // 5), если n > 0 и n делится на 5; F(n) = 1 + F(n - 1), если n не делится на 5. Программист составил код. Найдите номера строк, где допущены ошибки, в порядке возрастания без пробелов и разделителей.

Ответ:

Ошибки:

  • В строке 3 при n == 0 функция должна возвращать 0, а не 1.
  • В строке 4 проверяется целочисленное частное n // 5, а нужно проверить остаток от деления: n % 5 == 0. Также требуется условие n > 0.
  • В строке 8 функция range(1, 5000) перебирает числа только до 4999. Для включения 5000 нужно написать range(1, 5001).
  • В строке 10 нужно увеличивать счётчик на 1, а не на значение n: count = count + 1.

Ответ: 34810