Всем привет!
Есть функция:
def binary_symmetry(sieve):
a = []
for num in sieve:
x = format(num, 'b') # переводим num в двоичную систему
if len(x) % 2 == 0: # если длина двоичного числа - чётное число
half = (len(x) // 2) # то half равняется половине длины этого числа
one = ('1' * half)
zeroes = ('0' * half)
if len(x) == 2 and (x[0] == '1' and x[1] == '0'): # ВОТ ЭТО УСЛОВИЕ РАБОТАЕТ
a.append('{}:{}'.format(num, x))
elif x[0:half] == one and x[half:] == zeroes: # А ЭТО НЕ РАБОТАЕТ :(
a.append('{}:{}'.format(num, x))
return a
sieve является списком, который содержит в себе простые числа.
Данной функцией я пытаюсь решить учебную задачу по нахождению простых чисел, у которых в двоичном виде первая половина будет являться единицами, а вторая половина нулями.
Почему-то не работает условие elif x[0:half] == one and x[half:] == zeroes:
В чём моя ошибка?