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

№ 5159

Ixi123: zadolbalas = 0 for A in range (1, 1001): p = True for x in range(1, 1000): f = (x%6==0) <= (not(x%14==0)) or (x + A >= 70) and (A % 20==0) if (f==False): p = False break if (p==True): zadolbalas += 1 print(zadolbalas)zadolbalas = 0 for A in range (1, 1001): p = True for x in range(1, 1000): f = (x%6==0) <= (not(x%14==0)) or (x + A >= 70) and (A % 20==0) if (f==False): p = False break if (p==True): zadolbalas += 1 print(zadolbalas)

Ответов - 5

paalexovna: я тоже сижу с этим номером, у меня 80 получается: [pre2] for a in range(1,1000): flag=1 for x in range(100): f=((x%6==0)<=(x%14!=0))or(x+a>=70)and(a%20==0) if f==0: flag=0 break if flag==1: print(a) break [/pre2] ваша программа находит количество таких чисел А, разве нет?

Yoseph: paalexovna пишет: for x in range(100): В задаче сказано про натуральные числа, а они начинаются с 1. Т.е. цикл должен выглядеть так: for x in range(1, 100):...

Поляков: paalexovna пишет: я тоже сижу с этим номером, у меня 80 получается: for a in range(1,1000): flag=1 for x in range(100): f=((x%6==0)<=(x%14!=0))or(x+a>=70)and(a%20==0) if f==0: flag=0 break if flag==1: print(a) break Нужно так: [pre2] for x in range(1, 100): [/pre2]


Yoseph: В этой задаче легче решить на бумаге. Заметим, что первая скобка будет ложной при x, кратном 6 и 14 одновременно, т.е. x = 42. Из неравенства можно выразить А: А >= 70 - х, тогда для истинности всего выражения справедливо следующее: А >= 70 - 42 -> A >= 28, а также А должно быть кратно 20, тогда минимальное А при таком условии будет равно 40. При любых других значениях х будет делится либо только на 6 (1->1) == 1, либо только на 14 (0->0) == 1, либо ни на одно из них (0->1) == 1, другими словами (ДЕЛ(x, 6) → ¬ДЕЛ(x, 14)) будет истинно при любых х, кроме х кратных 42 (42, 84 и т.д.). Тогда нужно лишь учесть это значение х в (x + A ≥ 70) ∧ ДЕЛ(A, 20), таким образом найдя минимальное А. Я думаю, что программа просто выбирает значение А, при которых "вторая часть" формулы была бы истинна без учета х. Таким образом получается 80.

paalexovna: а в ответе 40....



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