#(№ 3912) Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом:
#1) Строится двоичная запись числа N.
#2) Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
#3) Шаг 2 повторяется ещё два раза.
#4) Результат переводится в десятичную систему счисления.
#При каком наименьшем исходном числе N > 100 в результате работы алгоритма получится число, которое делится на 4 и не делится на 8?
minc=float('inf')
for k in range(101,10000):
    a=bin(k)[2:]
    for _ in range(3):
       if (a.count('0')==a.count('1')):
        a+=a[len(a)-1]
       else:
           if (a.count('0')<a.count('1')):
               a+='0'
           else:
               a+='1'
    if (int(a,2)%4==0) and (int(a,2)%8!=0):
        minc=min(minc,k)

print(minc)