Вот эта задачка
codeforces.com/problemset/problem/579/AspoilerВы — большой любитель бактерий. Вам хочется вырастить немного бактерий в коробочке.
Изначально коробочка пуста. Каждое утро можно положить любое количество бактерий в коробочку. Каждую ночь каждая бактерия делится на две бактерии. Когда-нибудь вы надеетесь увидеть ровно x бактерий в коробочке.
Какое минимальное количество бактерий вам суммарно надо положить в коробочку для достижения этой цели?
Входные данные
В единственной строке записано одно целое число x (1 ≤ x ≤ 109) — количество бактерий.
Выходные данные
Единственная строка, содержащая одно целое число — ответ на задачу.
Примеры
входные данные
5
выходные данные
2
входные данные
8
выходные данные
1
Примечание
В первом примере мы можем положить одну бактерию в коробочку утром первого для, а утром третьего дня в коробочке будет 4 бактерий. Теперь надо положить в коробочку ещё одну бактерию, в результате чего в коробочке окажется 5 бактерий. Мы суммарно добавили 2 бактерии в коробочку, так что ответ равен 2.
Во втором примере мы можем положить одну бактерию утром первого дня, тогда утром четвёртого дня в коробочке будет 8 бактерий. Таким образом, ответ равен 1.
Моё решение, по-моему правильно все, но при тесте возникает ошибка:
x = int(input())
kol = 1
while kol <= x:
kol = kol * 2
kol = int(kol/2)
if x == 0:
print(x)
print(x - kol +1)