Форум » Логические выражения » № 3179 » Ответить

№ 3179

Ваня: def d(n, m): return n % m == 0 def f(a, x): return d(108, a) and ((not d(x, a)) <= (d(x, 42) <= (not d(x,68)))) for a in range(1, 200): if all(f(a,x) == 1 for x in range(1, 200)): print(a) Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа A формула ДЕЛ(108, A) ∧ (¬ДЕЛ(x, A) → (ДЕЛ(x, 42) → ¬ДЕЛ(x, 68))) тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)? Программа выдаёт вот такой ответ: 1 2 3 4 6 9 12 18 27 36 54 108 На сайте ответ 12, подскажите что не так))) Может в коде ошибка или есть более удобный код для решения этого задания

Ответов - 1

Ж: [pre2] for a in range(1, 1200): if all( 108%a==0 and (x%a==0 or (x%42!=0 or x%68!=0)) for x in range(1, 100000) ): print(a) [/pre2] Надо поменять: for x in range(1, 100000)



полная версия страницы