Задача к ЕГЭ по информатике на тему «одна функция» №7

Алгоритм вычисления значения функции F (n)  , где n  — целое неотрицательное число, задан следующими соотношениями:

F (n) = True  , при n = 1

F (n) = False  , если n  нечетно

F (n) = F(n∕∕2),  иначе

Определите для скольких чисел из отрезка [2;100000000]  функция вернет значение True?

Если число не будет полной степенью двойки, то при последовательном делении на 2  мы вскоре получим нечетное число (кроме 1  ) и вернем F alse  , True  вернут только степени двойки в данном диапазоне. Эффективно переберем все числа-степени двойки в данном отрезке

k = 0
x = 2
while x <= 100000000:
    k += 1
    x *= 2
print(k)

Ответ: 26
Оцените статью
Я решу все!