Найти в Дзене
Задача №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 недели назад
📎 24 задание на обработку строк решаем через регулярные выражения (№ 5645) (П. Финкель) Текстовый файл 24-230.txt состоит не более чем из 10^6 символов и содержит буквы английского алфавита и цифры. Определите максимальное число в этом файле, ограниченное двумя парами символов ZZ и удовлетворяющее маске «8???54???22», где символ ? обозначает любую цифру. Пример такого числа: 81235412322. Найдите произведение нечётных цифр найденного числа. #regex #регулярки #findall Решение на Python: import re s=open('24-230.txt').readline() l=re.findall(r'ZZ8\d{3}54\d{3}22ZZ',s) t = (max(int(x[2:-2]) for x in l)) p = 1 for x in str(t):   if x in '13579':    p*=int(x) print(p) Решение на pascalabc.net ## ReadAllText('24-230.txt') .MatchValues('ZZ8\d{3}54\d{3}22ZZ') .Select(t->t[3:^2].ToBigInteger) .max.ToString .Where(t->t in '13579') .Select(t->StrToInt(t)) .Product .Print;
6 месяцев назад
Решаем 24.4917 задание через регулярные выражения (№ 4917) Текстовый файл 24-191.txt содержит строку из заглавных латинских букв, всего не более чем из 10^6 символов. Определите количество подстрок длиной не менее 20 символов, которые начинаются буквой A, заканчиваются буквой B и не содержат других букв A и B, кроме первой и последней. Pascal: ## ReadAllText('24-191.txt') .MatchValues('[A][C-Z]+[B]') .Select(s -> s.Length) .count(t -> t >= 20) .print; Python import re k=0 s=open('24-191.txt').readline() r=re.findall(r'[A][C-Z]+[B]',s) print(len([x for x in r if len(x)>=20]))
6 месяцев назад
finditer() vs findall() Если вы осваиваете регулярные выражения, то в какой-то момент у вас возникнем вопрос: "В чем разница между функциями finditer() и findall()". Простой пример на python иллюстрирует эту разницу: import re s = 'ABBCAABAAAABD' r = re.finditer(r'(AA)+',s) r2 = re.findall(r'(AA)+',s) for x in r:   print(x[0]) print('---') for x in r2:   print(x)
7 месяцев назад
Основные функции библиотеки school; ## uses school; println('{Системы счисления}'); var x:=Random(100); println(x); bin(x).Println; oct(x).Println; hex(x).Println; ToBase(x,28).Println; //Перевод в 28-ю систему счисления Dec('28FDN6',31).println; //Перевод из 31-й системы счисления x.Digits.Println;  //Список цифр числа в десятичной системе счисления x.Digits(6).Println;  //Список цифр числа в 6-ной системе счисления println('{Простые числа}'); x.isPrime.Println; Primes(x).Println; //Простые числа на интервале [2;x] (Решето Эратосфена) Primes(100,100000000).count.Print; //Кол-во простых числа на интервале [2;x] PrimeDivisorsCount(x).Println; //Количество простых делителей числа x println('{НОД НОК}'); НОД(1100,1260).Println; GCD(1100,1260).Println; НОК(25,30).Println; LCM(25,30).Println; println('{Факторизация и делители}'); x.Divisors.Println; //Все делители числа x.Factorize.Println; //Разложение числа на простые множители (x.Divisors.count-2).Println; //Кол-во нетривиальных делителй x.DivisorsCount.Println;   //Кол-во делителй x.Divs(5).println;   //Делится ли на 5 x.DivsAll(|2,5,7|).Println;  //Возвращает True если целое делится на все значения x.DivsAny(|2,5,7|).Println;  //Возвращает True если целое делится на одно из значений
7 месяцев назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала