659 подписчиков
Задача №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])
1 минута
25 ноября