Для какого наименьшего целого неотрицательного числа A выражение (3m + 4n > 63) ∨ ((m ≤ A) ∧ (n < A)) тождественно истинно при любых целых неотрицательных m и n? Источник: ссылка |
"Условие истинно при любых m и n" означает, что оно истинно при всех. Попытаемся найти такие m и n, при которых это выражение станет ложным. Если такая ситуация произошла, делаем flag
ложным. Тут цикл можно прервать. В конце проверяем: если пробежав все m и n у нас flag
остался истинным, значит эта А
подходит "при любых m и n".
flag
для каждого цикла, но это не имеет смысла, потому что, даже выполнив все циклы, программа завершиться быстрее, чем вы будете писать их.
#Последовательно перебираем все переменные
#"целого неотрицательного числа A" значит
#перебор от 0 (ОБРАЩАЙТЕ НА ЭТО ВНИМАНИЕ!)
for A in range(300):
flag = True
for m in range(300):
for n in range(300):
if not((3*m + 4*n > 63) or ((m <= A) and (n < A))):
flag = False #Делаем флаг ложным
break #Можно остановить этот цикл
#Если мы пробежали все m и n и при этом flag ни разу не стал
#ложным, значит этот A нам подходит
if flag:
print(A)
break #Так как нам нужен "наименьший A", значит,
#можно остановить цикл тут