Алгоритм вычисления значения функции , где
— целое неотрицательное число, задан следующими соотношениями:
, при
, если
нечетно
иначе
Определите для скольких чисел из отрезка функция вернет значение True?
Если число не будет полной степенью двойки, то при последовательном делении на мы вскоре получим нечетное число (кроме
) и вернем
,
вернут только степени двойки в данном диапазоне. Эффективно переберем все числа-степени двойки в данном отрезке
k = 0
x = 2
while x <= 100000000:
k += 1
x *= 2
print(k)
Ответ: 26