Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему не работает код?

Эндрю М. Ученик (116), закрыт 8 часов назад
Текст задания:
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m».

Для какого наименьшего натурального числа А формула

¬(ДЕЛ(?,3)∧ДЕЛ(?,5))∨(?≥42−?)
¬(ДЕЛ(x,3)∧ДЕЛ(x,5))∨(A≥42−x)

тождественно истинна (т. е. принимает значение 1) при любом натуральном значении переменной х?

Моё решение:
 def Del (n, m): 
     for n in range(0, 1001): 
         for m in range(0, 1001): 
             print(n, m) 
             if  n % m == 0: 
                 for A in range(0, 1001): 
                     for x in range (1, 1001): 
                         if (not(Del(x, 3)) and Del(x, 5)) or (A >= 42 - x) == 1: 
                             print (A) 

Что не так?
Лучший ответ
Андрей Панарин Искусственный Интеллект (267698) 1 месяц назад
Пока что непонятно, что возвращает функция Del.

Попробуйте поместить весь код в одном блоке кода, чтобы были видны отступы.
В Python отступы считаются частью кода.
Остальные ответы
Андрей Высший разум (480434) 1 месяц назад
 ¬(ДЕЛ(?,3)∧ДЕЛ(?,5))∨(?≥42−?) =
~(ДЕЛ(x,3) & ДЕЛ(x,5)) | A >= 42 − x =
~ДЕЛ(x, НОК(3, 5)) | A >= 42 − x =
~ДЕЛ(x, 15) | A >= 42 − x
Минимальное x, при котором должно гарантироваться A >= 42 − x: 15
A >= 42 - 15
A >= 27
Ответ: 27

БЕЗ написания кода.
S.H.I. Оракул (73223) 1 месяц назад
 def Del(n, m): 
return n % m == 0

def is_formula_true(A, x):
return (not(Del(x, 3) and Del(x, 5))) or (A >= 42 - x)

def find_smallest_A():
A = 1
while True:
is_valid = True
# Проверяем только числа, делящиеся на 15 и меньшие 42
for x in [15, 30]:
if not is_formula_true(A, x):
is_valid = False
break
if is_valid:
return A
A += 1

print(find_smallest_A()) # Выведет 27
Похожие вопросы