Подскажите пожалуйста в чем ошибка(выдает значение от 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.