Посмотрел условие задачи в комментариях к ответу Хлебушка. И, очевидно, такие задачи решаются БЕЗ написания кода.
~дел(x, A) -> (дел(x, 20) -> ~дел(x, 7)) =
~~дел(x, A) | (~дел(x, 20) | ~дел(x, 7)) =
дел(x, A) | ~(дел(x, 20) & дел(x, 7)) =
дел(x, A) | ~дел(x, нок(20, 7)) =
дел(x, A) | ~дел(x, 140)
Данное выражение истинно для любого x при A = 140. И 140 - это единственный вариант.
В твоём коде неправильно написано условие:
if (x % A != 0) <= ((x % 20 == 0) <= (x % 7 != 0)):
k += 1
Скобки вокруг правого <= имеют значение.
322Ученик (148)
2 недели назад
вы правы, задачи решаются и без кода, достаточно просто знать законы алгебры логики, но не всем такое под силу
я пробовал их учить, но видимо плохо пробовал — не пошло
всё же, спасибо!
анекдот в качестве благодарности (если неверно, что неверно А, то А верно):
«Лекция на филфаке:
- Есть языки, в которых двойное отрицание означает утверждение.
Есть языки, в которых отрицание и утверждение означают отрицание, а есть языки, в которых та же самая комбинация означает утверждение.
Но запомните, что нет такого языка, в котором двойное утверждение обозначало бы отрицание!
Голос студента с задней парты:
- Ну да, конечно!»