17 заданий - 70 баллов
21 задание - 80 баллов
25 заданий - 90 баллов
Последние два номера дают по 2 первичных балла (за каждый ответ), суммарно за них можно получить 10 вторичных.
Забавный пример программки для перевода:
while True:
s = int(input('Сколько первичных баллов ты планируешь набрать? \n'))
if 1 <= s <= 29:
tab = [7, 14, 20, 27, 34, 40, 43, 46, 48, 51,
54, 56, 59, 62, 64, 67, 70, 72, 75, 78,
80, 83, 85, 88, 90, 93, 95, 98, 100]
print(f'Ты получишь: {tab[s - 1]} баллов! \n')
else:
print('Выход из программы.')
exit()
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤3❤🔥3
❤2
❤3
🥷 Ладно, последний опрос на сегодня!)
А насколько вам был полезен и пригодился контент на моём канале? В комментариях можно поделиться мнением, пожеланиями, конструктивной критикой🥷
А насколько вам был полезен и пригодился контент на моём канале? В комментариях можно поделиться мнением, пожеланиями, конструктивной критикой
Anonymous Poll
54%
10%
11%
8%
3%
2%
12%
❤4❤🔥2🔥1
Если вы еще выбираете вуз – обратите внимание на проект ИТ-гранты 2025. Это не просто консультации, а полноценная помощь в выборе университета и поступлении:
✨ Вузы с проходными от 200 баллов (не нужно гнаться за 290+)
✨ Современные кампусы с отличной техникой и условиями
✨ Занятия ведут преподаватели из МФТИ
✨ Уже со 2 курса – возможность попасть на стажировку в ИТ-компании (по специальности, а не “подработка ради галочки”)
🎯 Все консультации – бесплатны. Их поддерживают ИТ-компании, чтобы привлечь к себе перспективных студентов.
🔗 Узнать подробности
Посмотреть точно стоит – можно получить грант до 330 000 ₽ (сумма зависит от ваших баллов).
Удачи с поступлением! 🍀
IT-Гранты 2025 для абитуриентов
✨ Вузы с проходными от 200 баллов (не нужно гнаться за 290+)
✨ Современные кампусы с отличной техникой и условиями
✨ Занятия ведут преподаватели из МФТИ
✨ Уже со 2 курса – возможность попасть на стажировку в ИТ-компании (по специальности, а не “подработка ради галочки”)
🎯 Все консультации – бесплатны. Их поддерживают ИТ-компании, чтобы привлечь к себе перспективных студентов.
🔗 Узнать подробности
Посмотреть точно стоит – можно получить грант до 330 000 ₽ (сумма зависит от ваших баллов).
Удачи с поступлением! 🍀
IT-Гранты 2025 для абитуриентов
❤🔥6❤4👍3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7❤🔥6🔥4
Автор: Сергей Горбачев
Уровень: Средний
Сеть задана IP-адресом 140.116.194.0 и маской сети 255.255.240.0. Сколько в этой сети IP-адресов, в двоичной записи которых каждый из четырёх байтов оканчивается нулём?
from ipaddress import *
net = ip_network('140.116.194.0/255.255.240.0', 0)
cnt = 0
for ip in net:
b = f'{ip:b}'
if b[:8][-1] == '0':
if b[8:16][-1] == '0':
if b[16:24][-1] == '0':
if b[24:][-1] == '0':
cnt += 1
print(cnt)
Ответ: 1024
from ipaddress import *
• Импортируются все классы и функции из модуля ipaddress, используемого для работы с IP-адресами и сетями.
net = ip_network('140.116.194.0/255.255.240.0', 0)
• Создаётся объект сети net с заданным IP-адресом и маской. Аргумент 0 указывает, что используется маска, а не префикс.
cnt = 0
• Инициализируется счётчик для подсчёта подходящих IP-адресов.
for ip in net:
• Цикл перебирает все IP-адреса в заданной сети.
b = f'{ip:b}'
• Преобразует IP-адрес в строку его двоичного представления (без точек и пробелов).
if b[:8][-1] == '0':
• Проверяет, оканчивается ли первый байт (первые 8 бит) на 0.
if b[8:16][-1] == '0':
• Проверяет, оканчивается ли второй байт (биты с 8 по 15) на 0.
if b[16:24][-1] == '0':
• Проверяет, оканчивается ли третий байт (биты с 16 по 23) на 0.
if b[24:][-1] == '0':
• Проверяет, оканчивается ли четвёртый байт (биты с 24 по 31) на 0.
cnt += 1
• Увеличивает счётчик, если все четыре байта оканчиваются нулём.
• Выводит количество IP-адресов, удовлетворяющих условию задачи.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6👍3❤2🔥2
Автор: Л.Шастин
Уровень: Сложный
Определите наибольший номер строки таблицы, для чисел которой выполнены оба условия:
– числа в строке расположены в порядке неубывания;
– в строке есть повторяющиеся числа с чётной суммой цифр.
R = []
for n, s in enumerate(open('0. files/9.csv'), 1):
M = [int(x) for x in s.split(';')]
if M == sorted(M):
if any(M.count(x) > 1 and sum(map(int, str(x))) % 2 == 0 for x in M):
R.append(n)
print(max(R))
Ответ: 6937
R = []
Создается пустой список R, в который будут добавляться номера строк, удовлетворяющих условиям
for n, s in enumerate(open('0. files/9.csv'), 1):
Открывается файл 9.csv, итерируемся по его строкам s с нумерацией n, начиная с 1
M = [int(x) for x in s.split(';')]
Каждая строка s разбивается по разделителю ;, элементы преобразуются в целые числа, формируется список M
if M == sorted(M):
Проверяется, равен ли список M своему отсортированному варианту (проверка на неубывающую последовательность)
if any(M.count(x) > 1 and sum(map(int, str(x))) % 2 == 0 for x in M):
Проверяется, есть ли в списке M хотя бы одно число x, которое встречается больше одного раза (M.count(x) > 1) и сумма цифр которого четная (sum(map(int, str(x))) % 2 == 0)
R.append(n)
Если оба условия выполнены, номер строки n добавляется в список R
print(max(R))
Выводится максимальный номер строки из списка R (последняя подходящая строка в файле)
Please open Telegram to view this post
VIEW IN TELEGRAM
3❤8❤🔥4🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8👍5🔥5
Автор: Л.Шастин
Уровень: Средний
В некоторых системах счисления, для записи оснований которых используются целочисленные переменные p<37 и s<35, выполняется равенство: R4_(p−1)+B0_(s+2)+ T3NK4_p = 23593399_10. Определите произведение подходящих значений p и s и укажите его в ответе в десятичной системе счисления.
for p in range(30, 37):
for s in range(10, 35):
A = int(f'R4', p-1)
B = int(f'B0', s+2)
C = int(f'T3NK4', p)
if (A + B + C) == 23593399:
print(p * s)
Ответ: 780
for p in range(30, 37):
• Цикл, перебирающий значения p от 30 до 36 (включительно)
for s in range(10, 35):
• Вложенный цикл, перебирающий значения s от 10 до 34 (включительно)
A = int(f'R4', p-1)
• Преобразует строку 'R4' в число, интерпретируя её как число в системе счисления с основанием p-1
B = int(f'B0', s+2)
• Преобразует строку 'B0' в число, интерпретируя её как число в системе счисления с основанием s+2
C = int(f'T3NK4', p)
• Преобразует строку 'T3NK4' в число, интерпретируя её как число в системе счисления с основанием p
if (A + B + C) == 23593399:
• Проверяет, равна ли сумма чисел A, B и C значению 23593399
print(p * s)
• Если условие выполняется, выводит произведение p и s
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5🔥3👍2
Автор: Л.Шастин
Уровень: Средний
В файле содержится последовательность натуральных чисел, которые нумеруются, начиная с единицы. Определите количество пар элементов последовательности, сумма номеров которых оканчивается на ту же цифру, что и максимальный элемент последовательности. В ответе запишите количество найденных пар, затем минимальное значение среди модулей разностей суммы элементов и суммы номеров таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
M = [int(x) for x in open('0. files/17.txt')]
R = []
for i in range(len(M)-1):
x, y = M[i], M[i+1]
i, j = i+1, i+2
if (i + j) % 10 == max(M) % 10:
R.append(abs((x+y) - (i+j)))
print(len(R), min(R))
Ответ: 1000 811
M = [int(x) for x in open('0. files/17.txt')]
Читаем файл '0. files/17.txt', преобразуем каждую строку в целое число и сохраняем в список M
R = []
Создаем пустой список R для хранения результатов
for i in range(len(M)-1):
Запускаем цикл по индексам элементов списка M, кроме последнего
x, y = M[i], M[i+1]
Получаем текущий элемент x и следующий элемент y из списка M
i, j = i+1, i+2
Вычисляем индексы i и j для проверки условия (увеличиваем на 1 и 2 соответственно)
if (i + j) % 10 == max(M) % 10:
Проверяем, равен ли остаток от деления суммы индексов i и j на 10 остатку от деления максимального элемента списка M на 10
R.append(abs((x+y) - (i+j)))
Если условие выполняется, добавляем в список R модуль разности между суммой элементов x и y и суммой индексов i и j
print(len(R), min(R))
Выводим количество элементов в списке R и минимальное значение из этого списка
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍4🔥3
Автор: Л.Шастин
Уровень: Средний
Текстовый файл состоит из символов, обозначающих буквы латинского алфавита A, В и С и цифры 1 и 8.
Определите в прилагаемом файле максимальную длину подстроки, которая начинается и заканчивается на разные цифры, включает в себя равное количество букв B и C и не содержит других цифр, кроме первой и последней.
Для выполнения этого задания следует написать программу.
s = open('0. files/24.txt').readline()
s = s.replace('1', '1 1').replace('8', '8 8')
maxi = 0
for x in s.split():
if x.count('1') == 1:
if x.count('B') == x.count('C'):
maxi = max(maxi, len(x))
print(maxi)
Ответ: 1315
s = open('0. files/24.txt').readline()
• Открываем файл '0. files/24.txt' и читаем первую строку, сохраняя её в переменную s
s = s.replace('1', '1 1').replace('8', '8 8')
• Заменяем каждый символ '1' на '1 1' и каждый символ '8' на '8 8', удваивая их и добавляя пробелы между ними
maxi = 0
• Инициализируем переменную maxi для хранения максимальной длины подходящей строки
for x in s.split():
• Разбиваем строку s на список подстрок по пробелам и начинаем перебирать каждую подстроку в цикле
if x.count('1') == 1:
• Проверяем, что текущая подстрока x содержит ровно один символ '1'
if x.count('B') == x.count('C'):
• Проверяем, что количество символов 'B' равно количеству символов 'C' в текущей подстроке
maxi = max(maxi, len(x))
• Если оба условия выше выполнены, обновляем maxi, сохраняя максимальное значение между текущим maxi и длиной подстроки x
print(maxi)
• Выводим максимальную длину подходящей подстроки, найденную в результате работы программы
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍2🔥2
Автор: Е.Джобс
Уровень: Базовый
Определите количество пар элементов последовательности, в которых хотя бы одно число кратно минимальному двузначному значению последовательности, которое кратно сумме своих цифр.
Гарантируется, что в последовательности есть хотя бы одно двузначное число, соответствующее условию. В ответе запишите количество найденных пар чисел, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
M = [int(x) for x in open('0. files/17.txt')]
D = [x for x in M if len(str(abs(x))) == 2 and x % sum(map(int, str(x))) == 0]
R = []
for i in range(len(M) - 1):
x, y = M[i], M[i + 1]
if (x % min(D) == 0) + (y % min(D) == 0) >= 1:
R.append(x + y)
print(len(R), max(R))
Ответ: 537 19247
M = [int(x) for x in open('0. files/17.txt')]
Читает файл '0. files/17.txt', преобразует каждую строку в целое число и сохраняет в список M
D = [x for x in M if len(str(abs(x))) == 2 and x % sum(map(int, str(x))) == 0]
Создает список D из чисел M, у которых ровно две цифры (учитывая модуль) и которые делятся на сумму своих цифр
R = []
Инициализирует пустой список R для хранения сумм подходящих пар
for i in range(len(M) - 1):
Цикл по индексам списка M (кроме последнего элемента, чтобы не выйти за границы)
x, y = M[i], M[i + 1]
Берет текущий элемент x и следующий y из списка M
if (x % min(D) == 0) + (y % min(D) == 0) >= 1:
Проверяет, что хотя бы одно из чисел x или y делится на минимальное число из списка D
R.append(x + y)
Если условие выполняется, добавляет сумму x и y в список R
print(len(R), max(R))
Выводит количество найденных пар и максимальную сумму из списка R
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥5👍3
Автор: М.Попков
Уровень: Средний
Откройте файл электронной таблицы, содержащей в каждой строке четыре натуральных чисел. Определите количество строк таблицы, для чисел которых выполнены следующие условия:
– в строке есть только одно число, которое повторяется дважды, остальные два числа различны;
– все неповторяющиеся числа нечетны, повторяющиеся числа чётны.
В ответе запишите только число.
cnt = 0
for s in open('0. files/9.csv'):
M = sorted([int(x) for x in s.split(',')])
copied = [x for x in M if M.count(x) == 2]
uncopied = [x for x in M if M.count(x) == 1]
if len(copied) == 2 and len(uncopied) == 2:
if all(x % 2 != 0 for x in uncopied):
if all(x % 2 == 0 for x in copied):
cnt += 1
print(cnt)
Ответ: 53
cnt = 0
Инициализация счетчика для подсчета подходящих строк.
for s in open('0. files/9.csv'):
Открытие файла и построчное чтение данных. Каждая строка s содержит числа, разделенные запятыми.
M = sorted([int(x) for x in s.split(',')])
Разделение строки по запятым, преобразование в целые числа и сортировка списка.
copied = [x for x in M if M.count(x) == 2]
Создание списка чисел, встречающихся ровно 2 раза (дубликаты).
uncopied = [x for x in M if M.count(x) == 1]
Создание списка уникальных чисел (встречаются 1 раз).
if len(copied) == 2 and len(uncopied) == 2:
Проверка, что есть ровно 2 дублирующихся числа (1 пара) и 2 уникальных числа.
if all(x % 2 != 0 for x in uncopied):
Проверка, что все уникальные числа нечетные.
if all(x % 2 == 0 for x in copied):
Проверка, что все дублирующиеся числа четные.
cnt += 1
Если все условия выполнены, счетчик увеличивается на 1.
print(cnt)
Вывод общего количества подходящих строк.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3👍3❤2🔥2
Автор: Д.Бахтиев
Уровень: Средний
В файле содержится последовательность целых чисел.
Её элементы могут принимать целые значения от -100 000 до 100 000 включительно. Определите количество троек последовательности, сумма цифр элементов которых равна минимальному положительному элементу последовательности, оканчивающемуся на 4. В ответе запишите количество найденных троек, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
R = []
M = [int(x) for x in open('0. files/17.txt')]
W = [x for x in M if abs(x) % 10 == 4 and x > 0]
for i in range(len(M) - 2):
a, b, c = M[i], M[i + 1], M[i + 2]
summa = sum([int(x) for x in str(a) + str(b) + str(c) if x.isdigit()])
if summa == min(W):
R.append(a + b + c)
print(len(R), max(R))
Ответ: 11 180738
R = []
Создается пустой список R, в который будут записываться подходящие суммы троек чисел.
M = [int(x) for x in open('0. files/17.txt')]
Открывается файл 17.txt, читаются все числа и сохраняются в список M (каждое число преобразуется в int).
W = [x for x in M if abs(x) % 10 == 4 and x > 0]
В список W попадают только положительные числа из M, у которых последняя цифра равна 4 (например, 14, 24, -34 не подойдет, т.к. по условию x > 0).
for i in range(len(M) - 2):
Цикл перебирает индексы списка M до предпоследнего элемента, чтобы можно было взять тройку чисел (a, b, c) = (M[i], M[i+1], M[i+2]).
a, b, c = M[i], M[i + 1], M[i + 2]
Текущая тройка чисел из M записывается в переменные a, b и c.
summa = sum([int(x) for x in str(a) + str(b) + str(c) if x.isdigit()])
- str(a) + str(b) + str(c) — числа a, b, c преобразуются в строки и объединяются в одну строку (например, 123, -45, 678 → "123-45678").
- [int(x) for x in ... if x.isdigit()] — из этой строки берутся только цифры (минус игнорируется), и они преобразуются обратно в числа.
- sum(...) — вычисляется сумма всех цифр в тройке чисел.
if summa == min(W):
Проверяется, равна ли сумма цифр минимальному числу из W (т.е. минимальному положительному числу, оканчивающемуся на 4).
R.append(a + b + c)
Если условие выполнено, то сумма самой тройки чисел (a + b + c) добавляется в список R.
print(len(R), max(R))
В конце выводится:
- количество найденных троек (len(R)),
- максимальная сумма из этих троек (max(R)).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4🔥3👍2
Автор: Yandex учебник
Уровень: Базовый
Определите количество строк таблицы, для чисел которых выполнены оба условия:
- в строке есть ровно одно число, которое повторяется дважды, а остальные числа различны;
- максимальное число строки повторяется столько же раз, сколько и минимальное.
cnt = 0
for s in open('0. files/9.csv'):
M = [int(x) for x in s.split(';')]
copied2 = [x for x in M if M.count(x) == 2]
uncopied = [x for x in M if M.count(x) == 1]
if len(copied2) == 2 and len(uncopied) == 5:
if M.count(max(M)) == M.count(min(M)):
cnt += 1
print(cnt)
Ответ: 349
cnt = 0
Инициализируем счётчик, который будет считать строки, удовлетворяющие условиям задачи.
for s in open('0. files/9.csv'):
Построчно читаем файл '0. files/9.csv'; каждая строка — это строка s.
M = [int(x) for x in s.split(';')]
Преобразуем строку в список целых чисел, разделяя элементы по символу ';'.
copied2 = [x for x in M if M.count(x) == 2]
Создаём список чисел, которые встречаются ровно дважды.
uncopied = [x for x in M if M.count(x) == 1]
Создаём список чисел, которые встречаются только один раз.
if len(copied2) == 2 and len(uncopied) == 5:
Проверяем, что два различных числа встречаются по два раза, а пять других — по одному разу.
if M.count(max(M)) == M.count(min(M)):
Проверяем, что максимальное и минимальное значения в строке встречаются одинаковое количество раз.
cnt += 1
Если оба условия выполнены, увеличиваем счётчик подходящих строк на 1.
print(cnt)
Выводим количество строк, удовлетворяющих условиям задачи.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5🔥4❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7👍3❤1
Информатика | Илья Андрианов | itpy 🧑💻
Вот пример упорядоченного плана изучения ключевых тем Python для успешной подготовки к ЕГЭ по информатике:
1. Типы данных
2. Базовая арифметика
3. Строки
4. Списки
5. Генераторы списков
6. Условные операторы
7. Циклы
8. Работа с функциями
9. Встроенные функции any и all
10. Рекурсия функций
11. Чтение текстовых файлов
12. Библиотека itertools
Тут оставлю ссылку на мой бесплатный Python курс, который буду этим летом доводить до ума. Как минимум хочу добавить видео!)
#⃣ Вся теория для ЕГЭ в одном месте
➡ Информатика ЕГЭ | чатик itpy 🧑💻
1. Типы данных
Основные: целые (int), вещественные (float), строковые (str), булевы (bool).
2. Базовая арифметика
Операторы +, -, *, /, //, %, возведение в степень.
3. Строки
Индексация, срезы, методы (например, .split(), .join(), .replace() и т. д.).
4. Списки
Создание, индексация, методы (append(), pop(), remove(), sort() и др.).
5. Генераторы списков
Краткий синтаксис для создания списков на основе существующих («list comprehensions»).
6. Условные операторы
Конструкция if / elif / else, логические выражения (and, or, not).
7. Циклы
for и while, ключевые слова break и continue.
8. Работа с функциями
Определение def, параметры и аргументы, возврат значения (return), область видимости.
9. Встроенные функции any и all
Применение для проверки условий над коллекциями.
10. Рекурсия функций
Основы рекурсивных вызовов, условия выхода, пример решения классических задач (факториал, обход дерева).
11. Чтение текстовых файлов
Открытие файла (open), чтение (read, readline, readlines), закрытие файла или контекстный менеджер (with).
12. Библиотека itertools
Функции product (декартово произведение), permutations (перестановки) и их применение в переборе комбинаций.
Тут оставлю ссылку на мой бесплатный Python курс, который буду этим летом доводить до ума. Как минимум хочу добавить видео!)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6👍3🔥3❤1