Подскажите пожалуйста в чем ошибка(выдает значение от 1 до 99)

Код должен найти минимальное число A при тождественно ложном выражении:

((x & 17 ≠ 0) → ((x & A ≠ 0) → (x & 58 ≠ 0))) → ((x & 8 = 0) ∧ (x & A ≠ 0) ∧ (x & 58 = 0))

Должны вывестись значения 2 8 10 16 18 24 26 32 34 40 42 48 50 56 58

for A in range(1,100):
    p=[]
    for x in range(1,1000):
        F=(((x&17)!=0)<=(((x&A)!=0) <=((x&58)!=0)))<=(((x&8)==0)and((x&A)!=0)and((x&58)==0))
        p.append(F)
    if all(p)==False:
        print(A)

Ответы (1 шт):

Автор решения: Эникейщик

Замени

if all(p)==False:

на

if not any(p):

all(p)==False - проверяет, что не все элементы p равны True.

any(p) - проверяет, что хотя бы один из элементов p равен True. Соответственно, not any(p) проверяет, что ни один из элементов p не равен True.

→ Ссылка