Информатика | Илья Андрианов | itpy 🧑‍💻
1.04K subscribers
264 photos
20 videos
19 files
630 links
По рекламе: @ilandroxxy

Шпаргалки: clck.ru/3FwqWt
📚 Наши курсы: clck.ru/3FwqYb

Разборы: clck.ru/3Fwqay
💬 Чатик: clck.ru/3FwqZa

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
🚩🚩🚩🚩🚩 Разбор #ДВ2025 номера #ЕГЭ19-21 по информатике

🚩 Условие задачи:
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: убрать из кучи три камня или убрать из кучи семь камней или уменьшить количество камней в куче в три раза (количество камней, полученное при делении, округляется до меньшего).

Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 19 или меньше камней. В начальный момент в куче было S камней, S ≥ 20.

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.


👩‍💻 Код решения:
from math import ceil, floor
def F(s, n):
if s <= 19:
return n % 2 == 0
if n == 0:
return 0
h = [F(s-7, n-1), F(floor(s/3), n-1)]
return any(h) if (n - 1) % 2 == 0 else all(h)

print([s for s in range(20, 1000) if F(s, 2)])
print([s for s in range(20, 1000) if F(s, 3) and not F(s, 1)])
print([s for s in range(20, 1000) if F(s, 4) and not F(s, 2)])


#⃣ Разбор задач ДВ, первый день 10.06.25
#⃣ Шпаргалки по всем остальным номерам ЕГЭ

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍4🔥4
🚩🚩 Разбор #ДВ2025 номера #ЕГЭ15 по информатике

🚩 Условие задачи:
Укажите наименьшее целое значение А, при котором выражение
(2y + 3x < A) V (x > 15) V (y > 35)
истинно для любых целых положительных значений х и у.



👩‍💻 Код решения:
def F(x, y, A):
return (2 * y + 3 * x < A) or (x > 15) or (y > 35)

for A in range(1, 1000):
if all(F(x, y, A) for x in range(1, 1000) for y in range(1, 1000)):
print(A)
break



#⃣ Разбор задач ДВ, первый день 10.06.25
#⃣ Шпаргалки по всем остальным номерам ЕГЭ

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥5👍4
🚩🚩 Разбор #ДВ2025 номера #ЕГЭ12 по информатике

🚩 Условие задачи:
Дана программа для Редактора:
ПОКА нашлось (577) ИЛИ нашлось (677) ИЛИ нашлось (657)
ЕСЛИ нашлось (577)
ТО заменить (577,76)

ЕСЛИ нашлось (677)
ТО заменить (677,75)

ЕСЛИ нашлось (657)
ТО заменить (657, 56)

На вход приведённой выше программе поступает строка, начинающаяся с цифры «5», а затем содержащая п цифр «7» (3 < n < 10000). Определите наибольшее значение п, при котором сумма цифр в строке, получившейся в результате выполнения программы, равна 76.


👩‍💻 Код решения:
for n in range(4, 10000):
s = '5' + n * '7'
while '577' in s or '677' in s or '657' in s:
if '577' in s:
s = s.replace('577', '76', 1)
if '677' in s:
s = s.replace('677', '75', 1)
if '657' in s:
s = s.replace('657', '56', 1)
summ = sum([int(i) for i in s])
if summ == 76:
print(n)

# Ответ: 19


#⃣ Разбор задач ДВ, первый день 10.06.25
#⃣ Шпаргалки по всем остальным номерам ЕГЭ

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤‍🔥4🔥4👍2
🚩🚩 Разбор #ДВ2025 номера #ЕГЭ25 по информатике

🚩 Условие задачи:
Напишите программу, которая перебирает целые числа, бльшие 2 900 000, в порядке возрастания и ищет среди них такие, которые:

имеют ровно два различных натуральных делителя, кроме единицы и самого числа, то есть представляют собой произведение двух различных простых чисел, оба простых множителя содержат в своей записи ровно одну цифру О.

В ответе укажите первые пять таких чисел в порядке возрастания. Во втором столбце таблицы для каждого числа укажите его наибольший простой делитель.


👩‍💻 Код решения:
def divisors(x):
div = []
for j in range(2, int(x**0.5)+1):
if x % j == 0:
div += [j, x // j]
return sorted(set(div))

def Prost(x):
if x == 1:
return False
for i in range(2, int(x**0.5)+1):
if x % i == 0:
return False
return True

cnt = 0
for x in range(2_900_000, 10**10):
div = divisors(x)
if len(div) == 2 and Prost(div[0]) and Prost(div[1]):
if str(div[0]).count('0') == 1 and str(div[1]).count('0') == 1:
print(x, max(div))
cnt += 1
if cnt == 5:
break


#⃣ Разбор задач ДВ, первый день 10.06.25
#⃣ Шпаргалки по всем остальным номерам ЕГЭ

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤‍🔥44👍2
Как ваши успехи? Насколько оцениваете свои баллы?
Anonymous Poll
11%
< 30
7%
30-40
12%
40-50
6%
50-60
15%
60-70
18%
70-80
12%
80-90
19%
90+
💡Шкала перевода баллов ЕГЭ по информатике 2024 #useful

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()


#⃣ Вся теория для ЕГЭ в одном месте
#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥93❤‍🔥3
🥷 Ладно, последний опрос на сегодня!)

А насколько вам был полезен и пригодился контент на моём канале? В комментариях можно поделиться мнением, пожеланиями, конструктивной критикой 🥷
Anonymous Poll
54%
⚔️⚔️⚔️⚔️⚔️⚔️⚔️⚔️
10%
⚔️⚔️⚔️⚔️⚔️⚔️⚔️
11%
⚔️⚔️⚔️⚔️⚔️⚔️
8%
⚔️⚔️⚔️⚔️⚔️
3%
⚔️⚔️⚔️⚔️
2%
⚔️⚔️⚔️
12%
⚔️⚔️
4❤‍🔥2🔥1
Всех с праздником 🇷🇺🇷🇺🇷🇺
Желаю хороших выходных!!
❤‍🔥149😁5
Если вы еще выбираете вуз – обратите внимание на проект ИТ-гранты 2025. Это не просто консультации, а полноценная помощь в выборе университета и поступлении:

Вузы с проходными от 200 баллов (не нужно гнаться за 290+)
Современные кампусы с отличной техникой и условиями
Занятия ведут преподаватели из МФТИ
Уже со 2 курса – возможность попасть на стажировку в ИТ-компании (по специальности, а не “подработка ради галочки”)

🎯 Все консультации – бесплатны. Их поддерживают ИТ-компании, чтобы привлечь к себе перспективных студентов.

🔗 Узнать подробности

Посмотреть точно стоит – можно получить грант до 330 000 ₽ (сумма зависит от ваших баллов).

Удачи с поступлением! 🍀
IT-Гранты 2025 для абитуриентов
❤‍🔥64👍3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 Очень важный лайфхак для всех, кто идет сдавать ЕГЭ по Информатике #view

📱 Смотреть в TikTok

📱 Смотреть в YouTube

📱 Смотреть в ДЗЕН

📱 Смотреть в VK

📺 Все мои видео в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤‍🔥6🔥4
🚩🚩 Разбор номера 18445 #kege по информатике #ЕГЭ13
Автор: Сергей Горбачев
Уровень: Средний


🚩 Условие задачи:
Сеть задана 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

👩‍💻 Комментарии к коду:

1⃣ from ipaddress import *
• Импортируются все классы и функции из модуля ipaddress, используемого для работы с IP-адресами и сетями.


2⃣ net = ip_network('140.116.194.0/255.255.240.0', 0)
• Создаётся объект сети net с заданным IP-адресом и маской. Аргумент 0 указывает, что используется маска, а не префикс.


3⃣ cnt = 0
• Инициализируется счётчик для подсчёта подходящих IP-адресов.


4⃣ for ip in net:
• Цикл перебирает все IP-адреса в заданной сети.


5⃣ b = f'{ip:b}'
• Преобразует IP-адрес в строку его двоичного представления (без точек и пробелов).


6⃣ if b[:8][-1] == '0':
• Проверяет, оканчивается ли первый байт (первые 8 бит) на 0.


7⃣ if b[8:16][-1] == '0':
• Проверяет, оканчивается ли второй байт (биты с 8 по 15) на 0.


8⃣ if b[16:24][-1] == '0':
• Проверяет, оканчивается ли третий байт (биты с 16 по 23) на 0.


0⃣ if b[24:][-1] == '0':
• Проверяет, оканчивается ли четвёртый байт (биты с 24 по 31) на 0.


1⃣0⃣ cnt += 1
• Увеличивает счётчик, если все четыре байта оканчиваются нулём.


1⃣1⃣ print(cnt)
• Выводит количество IP-адресов, удовлетворяющих условию задачи.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6👍32🔥2
🚩 Разбор номера 18258 #kege по информатике #ЕГЭ9
Автор: Л.Шастин
Уровень:
Сложный

🚩 Условие задачи:
Определите наибольший номер строки таблицы, для чисел которой выполнены оба условия:
– числа в строке расположены в порядке неубывания;
– в строке есть повторяющиеся числа с чётной суммой цифр.


👩‍💻 Код решения:
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


👩‍💻 Комментарии к коду:

1⃣ R = []
Создается пустой список R, в который будут добавляться номера строк, удовлетворяющих условиям


2⃣ for n, s in enumerate(open('0. files/9.csv'), 1):
Открывается файл 9.csv, итерируемся по его строкам s с нумерацией n, начиная с 1


3⃣ M = [int(x) for x in s.split(';')]
Каждая строка s разбивается по разделителю ;, элементы преобразуются в целые числа, формируется список M


4⃣ if M == sorted(M):
Проверяется, равен ли список M своему отсортированному варианту (проверка на неубывающую последовательность)


5⃣ 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)


6⃣ R.append(n)
Если оба условия выполнены, номер строки n добавляется в список R


7⃣ print(max(R))
Выводится максимальный номер строки из списка R (последняя подходящая строка в файле)


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
38❤‍🔥4🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍5🔥5
🚩🚩Разбор номера 18265 #kege по информатике #ЕГЭ15
Автор: Л.Шастин
Уровень: Средний


🚩 Условие задачи:
В некоторых системах счисления, для записи оснований которых используются целочисленные переменные 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


👩‍💻 Комментарии к коду:

1⃣ for p in range(30, 37):
• Цикл, перебирающий значения p от 30 до 36 (включительно)


2⃣ for s in range(10, 35):
• Вложенный цикл, перебирающий значения s от 10 до 34 (включительно)


3⃣A = int(f'R4', p-1)
• Преобразует строку 'R4' в число, интерпретируя её как число в системе счисления с основанием p-1


4⃣ B = int(f'B0', s+2)
• Преобразует строку 'B0' в число, интерпретируя её как число в системе счисления с основанием s+2


5⃣ C = int(f'T3NK4', p)
• Преобразует строку 'T3NK4' в число, интерпретируя её как число в системе счисления с основанием p


6⃣ if (A + B + C) == 23593399:
• Проверяет, равна ли сумма чисел A, B и C значению 23593399


7⃣ print(p * s)
• Если условие выполняется, выводит произведение p и s


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5🔥3👍2
🚩🚩 Разбор номера 18257 #kege по информатике #ЕГЭ17
Автор: Л.Шастин
Уровень:
Средний

🚩 Условие задачи:
В файле содержится последовательность натуральных чисел, которые нумеруются, начиная с единицы. Определите количество пар элементов последовательности, сумма номеров которых оканчивается на ту же цифру, что и максимальный элемент последовательности. В ответе запишите количество найденных пар, затем минимальное значение среди модулей разностей суммы элементов и суммы номеров таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.


👩‍💻 Код решения:
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


👩‍💻 Комментарии к коду:

1⃣ M = [int(x) for x in open('0. files/17.txt')]
Читаем файл '0. files/17.txt', преобразуем каждую строку в целое число и сохраняем в список M


2⃣ R = []
Создаем пустой список R для хранения результатов


3⃣ for i in range(len(M)-1):
Запускаем цикл по индексам элементов списка M, кроме последнего


4⃣ x, y = M[i], M[i+1]
Получаем текущий элемент x и следующий элемент y из списка M


5⃣ i, j = i+1, i+2
Вычисляем индексы i и j для проверки условия (увеличиваем на 1 и 2 соответственно)


6⃣ if (i + j) % 10 == max(M) % 10:
Проверяем, равен ли остаток от деления суммы индексов i и j на 10 остатку от деления максимального элемента списка M на 10


7⃣ R.append(abs((x+y) - (i+j)))
Если условие выполняется, добавляем в список R модуль разности между суммой элементов x и y и суммой индексов i и j


8⃣ print(len(R), min(R))
Выводим количество элементов в списке R и минимальное значение из этого списка


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍2🔥1
🚩🚩 Разбор номера 14512 #kege по информатике #ЕГЭ24
Автор: Л.Шастин
Уровень:
Средний

🚩 Условие задачи:
Текстовый файл состоит из символов, обозначающих буквы латинского алфавита 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


👩‍💻 Комментарии к коду:

1⃣s = open('0. files/24.txt').readline()
• Открываем файл '0. files/24.txt' и читаем первую строку, сохраняя её в переменную s


2⃣ s = s.replace('1', '1 1').replace('8', '8 8')
• Заменяем каждый символ '1' на '1 1' и каждый символ '8' на '8 8', удваивая их и добавляя пробелы между ними


3⃣ maxi = 0
• Инициализируем переменную maxi для хранения максимальной длины подходящей строки


4⃣ for x in s.split():
• Разбиваем строку s на список подстрок по пробелам и начинаем перебирать каждую подстроку в цикле


5⃣ if x.count('1') == 1:
• Проверяем, что текущая подстрока x содержит ровно один символ '1'


6⃣ if x.count('B') == x.count('C'):
• Проверяем, что количество символов 'B' равно количеству символов 'C' в текущей подстроке


7⃣ maxi = max(maxi, len(x))
• Если оба условия выше выполнены, обновляем maxi, сохраняя максимальное значение между текущим maxi и длиной подстроки x


8⃣print(maxi)
• Выводим максимальную длину подходящей подстроки, найденную в результате работы программы


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍2🔥2