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

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

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

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 5895 #kege по информатике #ЕГЭ14
Автор задачи: (А. Игнатюк)
Уровень: Сложный

🚩 Условие задачи:
Дано арифметическое выражение 5xyC_16 + 8xx7_y. Определите, сколько различных значений может принимать выражение при всех возможных x и y.


🚩 Теоретическая справка:
Обратите внимание, что y является как переменной в 16-ой системе счисления, так и системой счисления в правом числе. Таким образом наш диапазон для y будет начинаться с 9 (так как в правом числе есть 8ка) и заканчиваться 16 (не включая).


👩‍💻 Код решения:
ALPHABET = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
my_set = set()
for y in range(9, 16):
for x in ALPHABET[:y]:
A = int(f'5{x}{ALPHABET[y]}C', 16)
B = int(f'8{x}{x}7', y)
my_set.add(A+B)
print(len(my_set))

# Ответ: 84


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

1⃣ ALPHABET = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
Создается отсортированный список ALPHABET, содержащий цифры от 0 до 9 и буквы английского алфавита в верхнем регистре.


2⃣ my_set = set()
Создается пустое множество my_set, в которое будут добавляться уникальные результаты.


3⃣ for y in range(9, 16):
Запускается внешний цикл for, перебирающий значения от 9 до 15 (не включительно) и присваивающий их переменной y.


4⃣ for x in ALPHABET[:y]:
Запускается вложенный цикл for, перебирающий элементы из списка ALPHABET до y-го индекса (не включительно) и присваивающий их переменной x.


5⃣ A = int(f'5{x}{ALPHABET[y]}C', 16)
Создается переменная A, в которую записывается число, представленное строкой с основанием 16, составленное из символов '5', x, ALPHABET[y] и 'C'.


6⃣ B = int(f'8{x}{x}7', y)
Создается переменная B, в которую записывается число, представленное строкой с основанием y, составленное из символов '8', x, x и '7'.


7⃣ my_set.add(A+B)
Сумма чисел A и B добавляется в множество my_set.


8⃣ print(len(my_set))
Выводится длина множества my_set, которая представляет количество уникальных результатов.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
1054
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 4937 #kege по информатике #ЕГЭ14
Уровень: Средний

🚩 Условие задачи:
Определите наибольшее значение x, при котором значение выражения 3x75_80 + 14x0_80 кратно 17. Для найденного значения x вычислите частное от деления выражения на 17.


🚩 Теоретическая справка:
Так как наша функция int(n, s) не работает с такими большими системами счисления, то придется написать свою.


👩‍💻 Код решения:
def my_int(num: list, base: int):
r = 0
num.reverse()
for i in range(0, len(num)):
r += num[i] * base ** i
return r

R = []
for x in range(0, 80):
A = my_int([3, x, 7, 5], 80) + my_int([1, 4, x, 0], 80)
if A % 17 == 0:
R.append(A // 17)
print(max(R))

# Ответ: 146405


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

1⃣ def my_int(M: list, n: int):
Параметры: M (список чисел) и n (основание системы счисления).


2⃣ r = 0
Создается переменная r, которая будет содержать итоговое значение.


3⃣ M.reverse()
Инвертируется список M для удобного вычисления числа.


4⃣ for i in range(0, len(M)):
Запускается цикл for, перебирающий индексы элементов списка M.


5⃣ r += M[i] * n ** i
К итоговому значению r прибавляется произведение элемента списка M[i] на степень основания n в степени i.


6⃣ return r
Функция возвращает значение r.


7⃣ R = []
Создается пустой список R, куда будут добавляться результаты.


8⃣ for x in range(0, 80):
Запускается цикл for, перебирающий значения от 0 до 79 и присваивающий их переменной x.


0⃣ A = my_int([3, x, 7, 5], 80) + my_int([1, 4, x, 0], 80)
Вычисляется значение A, равное сумме результатов функции my_int для списков с основанием 80.


1⃣0⃣ if A % 17 == 0:
Проверяется, делится ли число A на 17.


1⃣1⃣ R.append(A // 17)
Если число A делится на 17, результат целочисленного деления A на 17 добавляется в список R.


1⃣2⃣ print(max(R))
Выводится наибольший элемент из списка R.


Понравился пост? Поддержи реакцией:
❤‍🔥 - Обычный скучный лайк
- Весит как 10 обычных лайков
😼 - Кандидат на самый лучший пост недели

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
954👍2
This media is not supported in your browser
VIEW IN TELEGRAM
1⃣4⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ14 #шпора

📌 Ссылка на шпаргалку/методичку на Notion и несколько полезных функций уже здесь:

Подготовил для вас методическое пособие по решению 14 номера!

🚩 Собрать универсальный алфавит для систем счисления от 2 до 36:
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')


🚩 Аналогичный способ через библиотеку string:
from string import *
alphabet = digits + ascii_uppercase


🚩 Перебор элементов n-ой системы счисления:
for y in alphabet[:n]:


🚩 Перевод строку из n-ой системы счисления в десятичную:
x = int(f'79{x}{y}7', n)


🚩 Встроенные функции перевода:
bin()[2:]  # перевод в 2-ую
oct()[2:] # перевод в 8-ую
hex()[2:] # перевод в 16-ую


🚩 Перевод в другую систему счисления через f-строки:
x = 27
print(f'{x:b}') # 11011
print(f'{x:o}') # 33
print(f'{x:x}') # 1b
print(f'{x:X}') # 1B


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора: boosty 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
855
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера #statgrad по информатике #ЕГЭ14
Автор: Статград
Уровень:
Средний

🚩 Условие задачи:
Числа AB267D1_p и F024A89_p записаны в системе счисления с основанием p.
При каком минимальном p сумма этих чисел будет делиться на p–1?


🚩 Теоретическая справка:
Так как функция int(num, base) работает только в диапазоне от 2 до 36, то нам приходится написать свою универсальную функцию my_int(), изучите её и используйте в сложных задачах.


👩‍💻 Код решения:
def my_int(num, base):
return sum(x*base**i for i, x in enumerate(num[::-1]))


for p in range(16, 100):
A = my_int([10, 11, 2, 6, 7, 13, 1], p)
B = my_int([15, 0, 2, 4, 10, 8, 9], p)
if (A + B) % (p-1) == 0:
print(p)
break

# Ответ: 50


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

1⃣ def my_int(num, base):
Определение функции my_int, которая принимает список чисел num и основание base.


2⃣ return sum(x*base**i for i, x in enumerate(num[::-1]))
Функция возвращает сумму произведений элементов списка num на соответствующие степени base.


3⃣ for p in range(16, 100):
Запуск цикла for, который перебирает числа от 16 до 99 и использует их в качестве p.


4⃣ if (my_int([10, 11, 2, 6, 7, 13, 1], p) + my_int([15, 0, 2, 4, 10, 8, 9], p)) % (p-1) == 0:
Проверка условия: сумма результатов функции my_int для двух списков их модуль по отношению к p-1 равен нулю.


5⃣ print(p)
Вывод числа p, которое удовлетворяет условиям, после чего программа завершает работу, используя оператор break.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
766
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 13910 #kege по информатике #ЕГЭ14
Автор: Л. Шастин
Уровень: Базовый


🚩 Условие задачи:
В некоторой системе счисления с основанием p < 37 выполняется равенство TH_p + NQ_p + U_p = 1L7_p

Определите значение 𝑝 и укажите его в ответе в десятичной системе счисления.


🚩 Теоретическая справка:
Аудио с пояснением к коду решения оставлю в комментариях.


👩‍💻 Код решения:
for p in range(31, 36+1):  # U - 30
if int('TH', p) + int('NQ', p) + int('U', p) == int('1L7', p):
print(p)

# Ответ: 33


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

1⃣ for p in range(31, 36+1): # U - 30
Цикл for, который проходит по значениям p от 31 до 36 включительно. Комментарий указывает на то, что в данном случае символ 'U' представляет число 30 в системе счисления с основанием p.


2⃣ if int('TH', p) + int('NQ', p) + int('U', p) == int('1L7', p):
Условное выражение, которое проверяет, равно ли суммарное значение чисел, представленных строками 'TH', 'NQ' и 'U' в системе счисления с основанием p, числу, представленному строкой '1L7' в той же системе счисления.


3⃣ print(p)
Если условие из предыдущего пункта истинно, выводится значение p, при котором выполняется условие.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора: boosty 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1175
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 16261 #kege по информатике #ЕГЭ14
Автор: Е.Джобс
Уровень: Базовый


🚩 Условие задачи:
Операнды арифметического выражения записаны в системе счисления с основанием 21.

943697x21_21 – 2y9253_21

В записи чисел переменными x и y обозначены неизвестные цифра из алфавита 21-ричной системы счисления. Определите наибольшее значение разности (x – y), при котором значение данного арифметического выражения кратно 20. Для найденных x и y вычислите частное от деления значения арифметического выражения на 20.


🚩 Теоретическая справка:
Аудио с пояснением к коду решения оставлю в комментариях.


👩‍💻 Код решения:
R = []
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
for x in alphabet[:21]:
for y in alphabet[:21]:
A = int(f'943697{x}21', 21)
B = int(f'2{y}9253', 21)
if (A - B) % 20 == 0:
R.append([int(x, 21) - int(y, 21), (A - B) // 20])
print(max(R)[1])

# Ответ: 17394273143


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

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


2⃣ alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
Формирование отсортированного списка alphabet, содержащего цифры и латинские буквы.


3⃣ for x in alphabet[:21]:
Цикл for, который проходит по первым 21 символу из списка alphabet.


4⃣ for y in alphabet[:21]:
Еще один вложенный цикл for, который также проходит по первым 21 символу из списка alphabet.


5⃣ A = int(f'943697{x}21', 21)
Формирование числа A из строки, включающей '943697', символ x и '21'.


6⃣ B = int(f'2{y}9253', 21)
Аналогичное действие для переменной B, где формируется число из строки '2', символа y и '9253'.


7⃣ if (A - B) % 20 == 0:
Условие проверяет, делится ли разность A и B на 20 без остатка.


8⃣ R.append([int(x, 21) - int(y, 21), (A - B) // 20])
Добавление в список R кортежа, содержащего разность x и y, а также результат деления разности A и B на 20.


0⃣ print(max(R)[1])
Вывод второго элемента максимального кортежа в списке R.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
1255
🚩🚩 Разбор ДВ #2024 номера #14 по информатике #ЕГЭ14

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


👩‍💻 Код решения:
 
for x in range(1, 2030):
n = 3**100 - x
R = []
while n > 0:
R = [n % 3] + R
n //= 3
if R.count(0) == 2:
print(x)
break

# Ответ: 9


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

1. for x in range(1, 2030):
Цикл `for`, который проходит по значениям `x` от 1 до 2029.


2. n = 3**100 - x
Вычисление значения `n` как разности между `3` в степени `100` и `x`.


3. R = []
Создание пустого списка `R`, который будет содержать цифры в троичной системе счисления.


4. while n > 0:
Цикл `while`, который выполняется до тех пор, пока `n` больше нуля.


5. R = [n % 3] + R
Добавление остатка от деления числа `n` на 3 в начало списка `R`.

6. n //= 3
Целочисленное деление числа `n` на 3 для перехода к следующей цифре троичной записи.


7. if R.count(0) == 2:
Проверка условия: если в списке `R` ровно два раза встречается цифра 0.

8. print(x)
Вывод значения `x`, которое соответствует условиям задачи.

9. break
Прерывание цикла, если было найдено первое подходящее значение `x`.

Информатика
ЕГЭ | itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
733
🚩🚩 Разбор ДВ #2024 номера #14 по информатике #ЕГЭ14

🚩 Условие задачи:
Дано арифметическое выражение:
123XAB_31 + 3CEX321_31

Переменная х в каждом числе обозначает неизвестную цифру 31-ричной системы счисления. Необходимо найти наибольшее возможное значение х, при котором значение данной суммы кратно 17. В ответе необходимо указать частное от деления значения данной суммы на 17 в десятичной системе счисления. Основание системы счисления указывать не
нужно.


👩‍💻 Код решения:
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
for x in alphabet[:31]:
A = int(f'123{x}AB', 31)
B = int(f'3CE{x}321', 31)
if (A + B) % 17 == 0:
print((A + B) // 17)

# Ответ: 179431046


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

1. alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
Создание отсортированного списка `alphabet`, содержащего символы цифр и заглавных латинских букв.


2. for x in alphabet[:31]:
Цикл `for`, который перебирает первые 31 элемент из списка `alphabet`.


3. A = int(f'123{x}AB', 31)
Преобразование строки `f'123{x}AB'` в число в системе счисления 31 и сохранение этого числа в переменной `A`.


4. B = int(f'3CE{x}321', 31)
Преобразование строки `f'3CE{x}321'` в число в системе счисления 31 и сохранение этого числа в переменной `B`.


5. if (A + B) % 17 == 0:
Проверка условия: если сумма чисел `A` и `B` делится на 17 без остатка.


6. print((A + B) // 17)
Вывод на экран частного от деления суммы чисел `A` и `B` на 17.


Информатика ЕГЭ | itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
833
🚩🚩 Разбор ДВ #2024 номера #14 по информатике #ЕГЭ14

👩‍💻 Код решения:
for x in range(0, 2030+1):
n = 7**218 + 7**150 - x
r = []
while n > 0:
r = [n % 7] + r
n //= 7
if r.count(0) == 70:
print(x)
break


Информатика ЕГЭ | itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
1064
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 17555 #kege по информатике #ЕГЭ14
Автор: Основная волна 08.06.24
Уровень: Базовый


🚩 Условие задачи:
Значение арифметического выражения 7**91 + 7**160 – х, где х – целое положительное число, не превышающее 2030, записали в 7-ричной системе счисления. Определите наибольшее значение х, при котором в 7-ричной записи числа, являющегося значением данного арифметического выражения, содержится ровно 70 нулей.


👩‍💻 Код решения:
for x in range(2030+1):
n = 7**91 + 7**160 - x
M = []
while n > 0:
M.append(n % 7)
n //= 7
M.reverse()
if M.count(0) == 70:
print(x)

# Ответ: 2029


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

1⃣ for x in range(2030+1):
Цикл for, который перебирает числа от 0 до 2030 включительно и присваивает каждое число переменной x.


2⃣ n = 7**91 + 7**160 - x
Вычисление значения переменной n как суммы двух степеней числа 7 и значения x.


3⃣ M = []
Инициализация списка M, который будет содержать цифры полученного числа n в семеричной системе счисления.


4⃣ while n > 0:
Цикл while, который будет выполняться, пока значение n больше нуля.


5⃣ M.append(n % 7)
Добавление остатка от деления текущего значения n на 7 в список M.


6⃣ n //= 7
Целочисленное деление n на 7 для перехода к следующей цифре в семеричной записи.


7⃣ M.reverse()
Разворот списка M, чтобы получить корректный порядок цифр числа в семеричной системе.


8⃣ if M.count(0) == 70:
Проверка, содержит ли список M ровно 70 нулей.


0⃣ print(x)
Вывод числа x, которое удовлетворяет условию с результатом семеричного представления числа n содержащего 70 нулей.


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1064
🚩🚩 Разбор ДВ #2024 номера #14 по информатике #ЕГЭ14

👩‍💻 Код решения 1:
def G(n, b):
r = ''
while n > 0:
r = str(n % b) + r
n //= b
return r

R = []
for x in range(1, 2030+1):
num = 6**2030 + 6**100 - x
s = G(num, 6)
R.append([s.count('0'), x])

print(max(R))


👩‍💻 Код решения 2:
R = []
for x in range(1, 2030+1):
num = 6**2030 + 6**100 - x
s = ''
while num > 0:
s = str(num % 6) + s
num //= 6
R.append([s.count('0'), x])

print(max(R))


Информатика ЕГЭ | itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
853
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера None #kege по информатике #ЕГЭ14
Автор: PRO100EGE Вариант №7
Уровень: Базовый


🚩 Условие задачи:
Операнды арифметического выражения x1x_16 + x3x3_8 записаны в системах счисления с основанием 16 и 8. В записи чисел переменных x обозначена неизвестная цифра. Определите x, при котором значение данного арифметического выражения является степенью двойки. В ответе укажите x.


🚩 Теоретическая справка:
Обратите внимание на строчку M = [2 ** x for x in range(0, 100)], здесь мы собираем список всех степеней двойки до 2**100.


👩‍💻 Код решения:
alphabet = sorted('1234567890QWERTYUIOPASDFGHJKLZXCVBNM')
M = [2 ** x for x in range(0, 100)]
for x in alphabet[:8]:
a = int(f'{x}1{x}', 16)
b = int(f'{x}3{x}3', 8)
if a + b in M:
print(x)

# Ответ: 5


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

1⃣
alphabet = sorted('1234567890QWERTYUIOPASDFGHJKLZXCVBNM')
Создаем отсортированный список символов из строки, содержащей цифры и заглавные буквы английского алфавита.


2⃣ M = [2 ** x for x in range(0, 100)]
Создаем список степеней двойки от 2^0 до 2^99 (всего 100 элементов).


3⃣ for x in alphabet[:8]:
Проходим в цикле по первым 8 символам из отсортированного списка alphabet.


4⃣ a = int(f'{x}1{x}', 16)
Формируем строку вида 'x1x', где x - текущий символ из alphabet, и преобразуем её из шестнадцатеричной в десятичное число.


5⃣ b = int(f'{x}3{x}3', 8)
Формируем строку вида 'x3x3', где x - текущий символ из alphabet, и преобразуем её из восьмеричной в десятичное число.


6⃣ if a + b in M:
Проверяем, входит ли сумма чисел a и b в список степеней двойки M.


7⃣ print(x)
Если условие выполняется, выводим на экран текущий символ x.


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
2654
🚩 Практика №14 #ЕГЭ14
Автор: Пробник ИМЦ СПб, 6594
Уровень: Базовый


Условие задачи:
Операнды арифметического выражения записаны в системе счисления с основанием 13: 753x2_13 + 2x173_13

В записи чисел переменной x обозначена неизвестная цифра из алфавита 13-ричной системы счисления.

Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 12.

Для найденного значения x вычислите частное от деления значения арифметического выражения на 12 и укажите его в ответе в десятичной системе счисления.
Please open Telegram to view this post
VIEW IN TELEGRAM
7531
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 17868 #kege по информатике #ЕГЭ14
Автор: Демоверсия 2025
Уровень: Базовый


🚩 Условие задачи:
Дано выражение: 98897x21_19 + 2x923_19

В записи чисел переменной x обозначена неизвестная цифра из алфавита 19-ричной системы счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 18.

Для найденного x вычислите частное от деления значения арифметического выражения на 18.


👩‍💻 Код решения:
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
for x in alphabet[:19]:
A = int(f'98897{x}21', 19)
B = int(f'2{x}923', 19)
if (A + B) % 18 == 0:
print((A + B) // 18)

# Ответ: 469034148


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

1⃣ alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
Создаем упорядоченный список символов, содержащий цифры и буквы алфавита.


2⃣ for x in alphabet[:19]:
Запускаем цикл по первым 19 символам из отсортированного алфавита.


3⃣ A = int(f'98897{x}21', 19)
Преобразуем строку, состоящую из фиксированной последовательности '98897', текущего символа x и '21', в целое число с основанием 19.


4⃣ B = int(f'2{x}923', 19)
Преобразуем строку, состоящую из '2', текущего символа x и '923', в целое число с основанием 19.


5⃣ if (A + B) % 18 == 0:
Проверяем, делится ли сумма A и B на 18 без остатка.


6⃣ print((A + B) // 18)
Если условие выполнено, выводим целую часть результата деления суммы A и B на 18.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
31033
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 17870 #kege по информатике #ЕГЭ14
Автор: Демоверсия 2025
Уровень: Базовый


🚩 Условие задачи:
Значение арифметического выражения
7**170 + 7**100−x, где x – целое положительное число, не превышающее 2030, записали в 7-ричной системе счисления. Определите наибольшее значение x, при котором в 7-ричной записи числа, являющегося значением данного арифметического выражения, содержится ровно 71 нуль.


🚩 Теоретическая справка:
Это новый прототип 14 номера, который был выдан на основной волне 2024 года. Прошу заметить, что от обычного прототипа эта задача отличается двумя дополнительными строками!


👩‍💻 Код решения:
for x in range(2030+1):
n = 7**170 + 7**100 - x
b = 7
R = []
while n > 0:
R = [n % b] + R
n //= b
if R.count(0) == 71:
print(x)

# Ответ: 2029


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

1⃣ for x in range(2030+1):
Запускаем цикл, перебирая числа от 0 до 2030 включительно.


2⃣ n = 7**170 + 7**100 - x
Вычисляем значение n как разность между суммой больших степеней числа 7 и текущим значением x.


3⃣ b = 7
Устанавливаем основание системы счисления b равным 7.


4⃣ R = []
Инициализируем пустой список R, который будет использоваться для хранения цифр числа n в системе счисления с основанием b.


5⃣ while n > 0:
Запускаем цикл, который продолжается до тех пор, пока n больше 0.


6⃣ R = [n % b] + R
Добавляем остаток от деления n на b (последнюю цифру в системе счисления) в начало списка R.


7⃣ n //= b
Обновляем значение n, целочисленно деля его на b, чтобы перейти к следующей цифре.


8⃣ if R.count(0) == 71:
Проверяем, содержит ли список R ровно 71 ноль.


0⃣ print(x)
Если условие выполнено, выводим текущее значение x.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Второй канал про теорию Python 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
3843
This media is not supported in your browser
VIEW IN TELEGRAM
1⃣4⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ14 #шпора

Подготовил для вас шпоргалочку для решению 14 номера!

🚩 Собрать универсальный алфавит для систем счисления от 2 до 36:
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')


🚩 Аналогичный способ через библиотеку string:
from string import *
alphabet = digits + ascii_uppercase


🚩 Перебор элементов n-ой системы счисления:
for y in alphabet[:n]:


🚩 Перевод строку из n-ой системы счисления в десятичную:
x = int(f'79{x}{y}7', n)


🚩 Встроенные функции перевода:
bin()[2:]  # перевод в 2-ую
oct()[2:] # перевод в 8-ую
hex()[2:] # перевод в 16-ую


🚩 Перевод в другую систему счисления через f-строки:
x = 27
print(f'{x:b}') # 11011
print(f'{x:o}') # 33
print(f'{x:x}') # 1b
print(f'{x:X}') # 1B


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
2833
🚩 Сохраняйте список уже разобранных задачи на нашем канале #ЕГЭ14 #useful

Наша подборка Stepik задач №14 для подготовки 👨‍💻
1. Домашка, задачи базового уровня (ФИПИ)
2. Практика, задачи повышенной сложности

🚩🚩 Разбор номера 8425 #kege по информатике #ЕГЭ14

🚩🚩 Разбор номера 39243 #reshu по информатике #ЕГЭ14
Уровень: Базовый

🚩🚩 Разбор номера 13246 #kege по информатике #ЕГЭ14
Автор задачи: (М. Попков)
Уровень: Средний

🚩🚩 Разбор номера 5895 #kege по информатике #ЕГЭ14
Автор задачи: (А. Игнатюк)
Уровень: Сложный

🚩🚩 Разбор номера 4937 #kege по информатике #ЕГЭ14
Уровень: Средний

🚩🚩 Разбор номера #statgrad по информатике #ЕГЭ14
Автор: Статград
Уровень:
Средний

🚩🚩 Разбор номера 16261 #kege по информатике #ЕГЭ14
Автор: Е.Джобс
Уровень: Базовый

🚩🚩 Разбор номера 13910 #kege по информатике #ЕГЭ14
Автор: Л. Шастин
Уровень: Базовый

🚩🚩 Разбор номера 17870 #kege по информатике #ЕГЭ14
Автор: Демоверсия 2025
Уровень: Базовый


🚩🚩 Разбор номера 17868 #kege по информатике #ЕГЭ14
Автор: Демоверсия 2025
Уровень: Базовый


Информатика ЕГЭ | itpy 🧑‍💻
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤‍🔥5🔥2🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 18169 #kege по информатике #ЕГЭ14
Автор: (К. Багдасарян)
Уровень: Базовый


🚩 Условие задачи:
Значение арифметического выражения: 3**2000 + 3**10 − х, где х – натуральное число, записали в троичной системе счисления. Определите наименьшее значение x, при котором троичная запись значения данного выражения содержит 2000 цифр «2».


🚩 Теоретическая справка:
Данный прототип появился на экзамене в 2024 году, не считаю его сложным, всего-то нужно добавить две строчки!


👩‍💻 Код решения:
def convert(n, b):
r = ''
while n > 0:
r += str(n % b)
n //= b
return r[::-1]


for x in range(60000, 0, -1):
n = 3**2000 + 3**10 - x
r = convert(n, 3)
if r.count('2') == 2000:
print(x)
break

#Ответ: 59050


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

1⃣ for x in range(60000, 0, -1):
Запускаем цикл, перебирая значения x от 60000 до 1 (включительно), уменьшая x на 1 на каждой итерации.


2⃣ n = 3**2000 + 3**10 - x
Вычисляем n как сумму 3 в степени 2000 и 3 в степени 10, затем вычитаем текущее значение x.


3⃣ r = convert(n, 3)
Преобразуем число n в представление в системе счисления с основанием 3 и сохраняем результат в переменную r.


4⃣ if r.count('2') == 2000:
Проверяем, содержится ли в строке r ровно 2000 символов '2'.


5⃣ print(x)
Если условие истинно, выводим текущее значение x.


6⃣ break
Прерываем цикл, так как нужное значение x найдено.



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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Второй канал про теорию Python 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍9❤‍🔥3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 12468 #kege по информатике #ЕГЭ14
Автор: kompege.ru
Уровень: Базовый


🚩 Условие задачи:
Операнды арифметического выражения записаны в системе счисления с основанием 19.

78x79643_19 + 25x43_19 + 63x5_19

В записи чисел переменной x обозначена неизвестная цифра из алфавита 19-ричной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 18. Для найденного x вычислите частное от деления значения арифметического выражения на 18


🚩 Теоретическая справка:
Век живи, век учись! Еще один вариант решения 14 номера (второй прототип).


👩‍💻 Код решения:
for x in '0123456789ABCDEFGHI':

A = int('78x79643'.replace('x', x), 19)
B = int('25x43'.replace('x', x), 19)
C = int('63x5'.replace('x', x), 19)

if (A + B + C) % 18 == 0:
print((A + B + C) // 18)
break

# Ответ: 368599039


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

1⃣ for x in '0123456789ABCDEFGHI':
Запускаем цикл, который будет перебирать все символы от 0 до I в строке.


2⃣ A = int('78x79643'.replace('x', x), 19)
Заменяем 'x' на текущий символ и преобразуем строку в целое число в системе счисления с основанием 19, сохраняя результат в A.


3⃣ B = int('25x43'.replace('x', x), 19)
Аналогично, заменяем 'x' в другой строке и преобразуем её в целое число в системе счисления с основанием 19, сохраняя результат в B.


4⃣ C = int('63x5'.replace('x', x), 19)
Заменяем 'x' в третьей строке, преобразуем строку в целое число в системе счисления с основанием 19 и сохраняем в C.


5⃣ if (A + B + C) % 18 == 0:
Проверяем, делится ли сумма A, B и C на 18 без остатка.


6⃣ print((A + B + C) // 18)
Если условие выполняется, выводим результат деления суммы на 18.


7⃣ break
Завершаем цикл, если нашли подходящее значение, чтобы избежать дальнейших итераций.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Наша Stepik подборкой задач 😼
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥83👍1🔥1
🚩🚩 Разбор #ДВ2025 номера #ЕГЭ14 по информатике

🚩 Условие задачи:
Операнды арифметического выражения записаны в системе счисления с основанием 27: 2107x792_27 + 565х211_27

В записи чисел переменной х обозначена неизвестная цифра из алфавита 27-ричной системы счисления.

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


👩‍💻 Код решения:
for x in '0123456789ABCDEFGHIJKLMNOPQ':
a = int(f'2107{x}792', 27) + int(f'565{x}211', 27)
if a % 26 == 0:
print(a // 26)
break

#Ответ: 897607140


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

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