Задача №15 ЕГЭ по информатике по мотивам сборника Крылова 2026 ********************************************************************************************************** (№ 8409) (И. Карпачёв) На числовой прямой дан отрезок A = [4; 82]; B – множество всех натуральных делителей числа 211, отличных от единицы и от самого числа 211; C – множество всех натуральных делителей некоторого натурального числа y, отличных от единицы и от самого числа y (число y таково, что множество C непустое). Укажите значение y, имеющее максимальное количество делителей, для которого выражение: ((x ∈ B) ∨ ¬(x ∈ A)) → ¬(x ∈ C) тождественно истинно (т.е. принимает значение 1 при любом натуральном значении переменной х)? ********************************************************************************************************** Решение на современном pascalabc.net ## uses school; function f(x,y:integer):boolean; begin var a:=x in range(4,82); var b:=x in 211.divisors?[1:^1]; var c:=x in y.divisors?[1:^1]; if not y.IsPrime then result:=(b or not a)<=(not c) else result:=false; end; (1..10000) .Where(y -> ((1..1000).All(x->f(x,y)))) .Select(y->(y, y.divisors.count)) .MaxBy(y->y[1]) .Print; Решение на python: def allDivs( x ): divs = [] d = 2 while d*d <= x: if x % d == 0: divs.append( d ) if x // d > d: divs.append( x//d ) d += 1 return sorted(divs) def f(x,y): a = 4<=x<=82 b = x in allDivs(211) c = x in allDivs(y) if len(allDivs(y))>0: return (b or (not a)) <=(not c) q = [] for y in range(1,10000): if all(f(x,y) for x in range(1,1000)): q+=[(y,len(allDivs(y)))] q.sort(key = lambda x: (x[1])) print(q[-1]) @Информатика Сегодня
2 недели назад