Информатика | Илья Андрианов | itpy 🧑‍💻
1.06K 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
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 4142 #polyakov по информатике #ЕГЭ24
Автор: А. Богданов
Уровень: Средний


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


👩‍💻 Код решения:
s = open('24.txt').readlines()
maxi = 0
for x in s:
count = 2
for i in range(len(x)-2):
if x[i:i+3] in ('XYZ', 'YZX', 'ZXY'):
count += 1
maxi = max(maxi, count)
else:
count = 2
print(maxi)

# Ответ: 53


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

1⃣ s = open('24.txt').readlines()
Чтение всех строк из файла "24.txt" и сохранение их в виде списка строк в переменную s.


2⃣ maxi = 0
Инициализация переменной maxi со значением 0, которая будет хранить максимальное количество найденных последовательностей.


3⃣ for x in s:
Цикл, который перебирает строки из списка s для анализа каждой строки отдельно.


4⃣ count = 2
Инициализация переменной count со значением 2, которая будет использоваться для подсчета последовательности в текущей строке.


5⃣ for i in range(len(x)-2):
Внутренний цикл, который перебирает индексы от 0 до длины строки x минус 2 для итерации по каждой тройной подстроке в текущей строке.


6⃣ if x[i:i+3] in ('XYZ', 'YZX', 'ZXY'):
Проверка условия: если текущая тройная подстрока x присутствует в кортеже заданных строк 'XYZ', 'YZX' или 'ZXY'.


7⃣ count += 1
Увеличение значения переменной count на 1, если найдена подходящая тройная последовательность.


8⃣ maxi = max(maxi, count)
Обновление значения переменной maxi на большее из текущего значения и count.


0⃣ else:
В случае, если текущая тройная подстрока не соответствует заданным последовательностям:


1⃣0⃣ count = 2
Сброс значения переменной count на 2 для начала подсчета заново в текущей строке.


1⃣1⃣ print(maxi)
Вывод наибольшего значения переменной maxi.


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

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


🚩 Условие задачи:
Текстовый файл состоит из символов T, U, V, W, X, Y и Z.

Определите в прилагаемом файле максимальную длину подстроки, состоящую из пар символов XX, YY или ZZ в произвольном порядке, при этом ни одна пара не должна повторяться два раза подряд.


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


👩‍💻 Код решения:
s = open('24.txt').readline()
for a in 'TUVW':
s = s.replace(a, ' ')
for a in 'XYZ':
while a*4 in s:
s = s.replace(a*4, f'{a*2} {a*2}')
while a*3 in s:
s = s.replace(a*3, f'{a*2} {a*2}')
print(max([len(x) for x in s.split()]))
print(max(map(len, s.split())))

# Ответ: 52


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

1⃣ s = open('24.txt').readline()
Чтение первой строки из файла "24.txt" и сохранение ее содержимого в переменную s.


2⃣ for a in 'TUVW':
Цикл, который перебирает символы 'T', 'U', 'V', 'W' для замены их на пробел в строке s.


3⃣ s = s.replace(a, ' ')
Замена каждого символа 'T', 'U', 'V', 'W' на пробел в строке s.


4⃣ for a in 'XYZ':
Цикл, который перебирает символы 'X', 'Y', 'Z' для выполнения дополнительных преобразований в строке s.


5⃣ while a*4 in s:
Пока последовательность из 4 символов a присутствует в строке s.


6⃣ s = s.replace(a*4, f'{a*2} {a*2}')
Замена последовательности из 4 символов a на строку, состоящую из 2 символов a, пробела и еще 2 символов a.


7⃣ while a*3 in s:
Пока последовательность из 3 символов a присутствует в строке s.


8⃣ s = s.replace(a*3, f'{a*2} {a*2}')
Замена последовательности из 3 символов a на строку, состоящую из 2 символов a, пробела и еще 2 символов a.


0⃣ print(max([len(x) for x in s.split()]))
Вывод максимальной длины слова после разделения строки s по пробелам и определения максимальной длины с помощью List Comprehension.


🔟 print(max(map(len, s.split())))
Еще одна аналогичная запись.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора: boosty 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1074
👩‍💻 Ещё одна шпаргалка для задания с черепашкой #ЕГЭ6 #tpy

Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора: boosty 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
12533
Обращаюсь к вам, уважаемые подписчики Telegram Premium, с просьбой о помощи #sos

Прошу вас поддержать меня своим голосом, а в благодарность я постараюсь радовать вас еще более интересным и качественным контентом🔥

Свой голос вы можете оставить по ссылке: Поддержать автора

Благодарю всех неравнодушных за вашу поддержку! 💛

Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1785
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 18289 #reshu по информатике #ЕГЭ23
Уровень: Средний


Задач из ОГЭ, 5 номер, но считаю её весьма полезной, так как это усложненная вариация 23 номера ЕГЭ.

🚩 Условие задачи:
1. раздели на 2
2.  вычти 1

Составьте алгоритм получения из чиcла 65 числа 4, содержащий не более 5 команд. В ответе запишите только номера команд.


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


👩‍💻 Код решения:
def F(a, b, t):
if a < b or len(t) > 5:
return 0
elif a == b and len(t) <= 5:
print(t)
return 1
else:
return F(a / 2, b, t+'1') + F(a-1, b, t+'2')

F(65, 4, '')

# Ответ: 21111


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

1⃣ def F(a, b, t):
Определение функции F с тремя параметрами a, b, и t.


2⃣ if a < b or len(t) > 5:
Проверка условия: если a меньше b или длина строки t превышает 5 символов.


3⃣ return 0
Возврат значения 0, если условие из пункта 2 истинно.


4⃣ elif a == b and len(t) <= 5:
Другое условие: если a равно b и длина строки t не превышает 5 символов.


5⃣ print(t)
Вывод текущего состояния строки t.


6⃣ return 1
Возврат значения 1, если условие из пункта 4 истинно.


7⃣ else:
В случае, если ни одно из вышеперечисленных условий не выполнено.


8⃣ return F(a / 2, b, t+'1') + F(a-1, b, t+'2')
Рекурсивный вызов функции F с различными значениями аргументов: для первого вызова a уменьшается вдвое и к строке t добавляется символ '1', для второго вызова a уменьшается на 1, к строке t добавляется символ '2'.


0⃣ F(65, 4, '')
Вызов функции F с начальными значениями a=65, b=4, и пустой строкой t.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора: boosty 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
854
👩‍💻 Сохраняй шпаргалку для #ЕГЭ6 номера #tpy

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


🚩 Условие задачи:
Найдите последние семь цифр суммы F(2020) + F(2200).


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


👩‍💻 Код решения:
from functools import *
@lru_cache(None)
def F(n):
if n < 2025:
return n**2
if 2025 <= n < 2050:
return 2 * F(n-1) - F(n-2) + n
if 2050 <= n <= 2100:
return F(n-1) + 2 * F(n-2) + 3 * F(n-3)
if n > 2100:
return 2 * F(n-1) + F(n-2) + n

print(str(F(2020) + F(2200))[-7:])

Ответ: 5098903


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

1⃣ from functools import *
Импорт всех функций из модуля functools.


2⃣ @lru_cache(None)
Декоратор, который кэширует результаты выполнения функции F, чтобы избежать повторных вычислений.


3⃣ def F(n):
Определение функции F с одним параметром n.


4⃣ if n < 2025:
Проверка условия: если n меньше 2025.


5⃣ return n**2
Возврат квадрата числа n, если условие из пункта 4 истинно.


6⃣ if 2025 <= n < 2050:
Проверка условия: если n больше либо равно 2025 и меньше 2050.


7⃣ return 2 * F(n-1) - F(n-2) + n
Возврат значения, вычисленного по формуле, если условие из пункта 6 истинно.


8⃣ if 2050 <= n <= 2100:
Проверка условия: если n от 2050 до 2100 включительно.


0⃣ return F(n-1) + 2 * F(n-2) + 3 * F(n-3)
Возврат значения, вычисленного по формуле, если условие из пункта 8 истинно.


1⃣0⃣ if n > 2100:
Проверка условия: если n больше 2100.


1⃣1⃣ return 2 * F(n-1) + F(n-2) + n
Возврат значения, вычисленного по формуле, если условие из пункта 10 истинно.


1⃣2⃣ print(str(F(2020) + F(2200))[-7:])
Вызов функции F с аргументами 2020 и 2200, вычисление их суммы, преобразование в строку, взятие последних семи символов и вывод результата.


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора: boosty 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1044
👩‍💻 Несколько способов как найти значение суммы числовых значений цифр в строке #tpy

Пример строки:
s = '3721893721'


Вариант 1:
summa1 = 0
for x in s:
summa1 += int(x)
print(summa1)


Вариант 2:
summa2 = 0
for i in range(0, 10):
summa2 += s.count(str(i)) * i
print(summa2)


# или: summa2 = s.count('1') + s.count('2') * 2 + ...


Вариант 3:
summa3 = sum(map(int, s))
print(summa3)


Вариант 4:
summa4 = sum([int(x) for x in s])
print(summa4)


# или: summa4 = sum([int(x) for x in s if x.isdigit()])


Информатика ЕГЭ | itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
1466
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
1⃣5⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ15 #шпора

📌 Ссылка на полную версию шпаргалки/методички на Notion.

Поставь ❤‍🔥, отправь другу, и забирай несколько полезных функций, которые уже ждут тебя здесь:

🚩 Шаблон для первого типа:
(ДЕЛ(x, 2) → ¬ДЕЛ(x, 13)) ∨ (x + A ≥ 1000)

def F(x, A):
# return здесь пишем логическую функцию
return (x % 2 == 0) <= (x % 13 != 0) or ((x + A) >= 1000)

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


🚩 Шаблон для второго типа:
(3x+y>48)∨(x>y)∨(4x+y<A)

def F(x, y, A):
# return здесь пишем логическую функцию
return ((3 * x) + y > 48) or (x > y) or ((4 * x) + y < A)


R = []
for A in range(0, 100):
if any(F(x, y, A) == 0 for x in range(0, 100) for y in range(0, 100)):
R.append(A)
print(max(R))


🚩 Шаблон для третьего типа:
x&25 ≠ 0 → (x&17 = 0 → x&А ≠ 0)

def F(x):
# return здесь пишем логическую функцию
return (x & 25 != 0) <= ((x & 17 == 0) <= (x & A != 0))


for A in range(0, 1000):
if all(F(x) for x in range(0, 10000)):
print(A)
break


🚩 Шаблон для четвертого типа:
((x  принадлежит  A) → ¬(x  принадлежит  P)) → ((x  принадлежит  A) → (x  принадлежит Q))

def F(x):
P = 10 <= x <= 35
Q = 17 <= x <= 48
A = a1 <= x <= a2
# return здесь пишем логическую функцию
return (A <= (not P)) <= (A <= Q)


M = [i / 4 for i in range(1 * 4, 60 * 4)] # нужно поменять range
R = []
for a1 in M:
for a2 in M:
if all(F(x) for x in M):
R.append(a2 - a1)
print(max(R))


Здесь я уже делал пост про логические функции.

Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1343
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
This media is not supported in your browser
VIEW IN TELEGRAM
6⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ6 #шпора

📌 Ссылка на полную версию шпаргалки/методички на Notion.

Поставь ❤‍🔥, отправь другу, и забирай несколько полезных функций, которые уже ждут тебя здесь:

🚩 Шаблон программы:
import turtle as t
t.left(90)
t.tracer(0)
l = 30

# тут пишем псевдокод

t.up()
for x in range(-50, 50):
for y in range(-50, 50):
t.goto(x * l, y * l)
t.dot('black')
t.done()


🚩 t.tracer(0)
Эта функция отключает анимацию черепахи, что делает отрисовку более быстрой, т.е. графика не будет отображаться до тех пор, пока t.update() не будет вызван явно. Значение 0 указывает на отключение анимации.


🚩 l = 30
Здесь создается переменная l и устанавливается значение 30.


🚩 forward(distance)
Двигает черепаху вперед на заданное расстояние.


🚩 backward(distance)
Двигает черепаху назад на заданное расстояние.


🚩 right(angle)
Поворачивает черепаху направо на заданный угол.


🚩 left(angle)
Поворачивает черепаху налево на заданный угол.


🚩 t.up()
Эта функция поднимает перо черепахи, что позволяет ей перемещаться без рисования.


🚩 for x in range(-50, 50)::
Этот цикл перебирает значения от -50 до 49 (50 не включается) для переменной x.


🚩 for y in range(-50, 50):
Этот цикл перебирает значения от -50 до 49 (50 не включается) для переменной y.


🚩🚩 t.goto(x * l, y * l)
Эта функция перемещает черепаху в позицию с координатами (x * l, y * l), где l - это длина шага.


🚩🚩 t.dot('black')
Эта функция рисует точку черным цветом в текущей позиции черепахи.


🚩🚩 t.done()
Этот вызов указывает, что рисование завершено, и окно черепахи должно быть закрыто.


Таким образом, весь код используется для создания сетки черных точек в виде таблицы 100x100.

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


🚩 Условие задачи:
а) если число N делится на 3, то первая и последняя цифры меняются местами, а затем в конец дописывается единица;
б) если число N на 3 не делится, то остаток от деления на 3 дописывается в конец числа.


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


👩‍💻 Код решения:
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
def convert(num, base):
res = ''
while num > 0:
res = alphabet[num % base] + res
num //= base
return res


R = []
for n in range(1, 1000, 2):
s = convert(n, 4)
if n % 3 == 0:
s = s[-1] + s[1:-1] + s[0] + '1'
else:
s += str(n % 3)
r = int(s, 4)
if r <= 340:
R.append(r)
print(max(R))

# Ответ 334


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

1⃣ def convert(num, base):
Функцию convert() комментировать не буду, опишу её постом ниже.


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


3⃣ for n in range(1, 1000, 2):
Цикл for, который проходит по нечетным числам от 1 до 999 включительно.


4⃣ s = convert(n, 4)
Преобразование числа n в строку с использованием четверичной системы счисления.


5⃣ if n % 3 == 0:
Проверка, является ли число n кратным 3.


6⃣ s = s[-1] + s[1:-1] + s[0] + '1'
Если число n кратно 3, изменяем строку s, меняя местами первый и последний символ, добавляем '1' в конец.


7⃣ else:
В противном случае (число n не кратно 3) выполняем следующий блок кода.


8⃣ s += str(n % 3)
Если число n не кратно 3, добавляем остаток от деления числа n на 3 в виде строки в конец строки s.


0⃣ r = int(s, 4)
Преобразование строки s обратно в число в четверичной системе счисления.


1⃣0⃣ if r <= 340:
Проверка, меньше ли полученное число r или равно 340.


1⃣1⃣ R.append(r)
Добавление числа r в список R.


1⃣2⃣ print(max(R))
Вывод максимального числа из списка R.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора: boosty 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1043
This media is not supported in your browser
VIEW IN TELEGRAM
1⃣6⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ16 #шпора

📌 Ссылка на полную версию шпаргалки/методички на Notion.

Поставь ❤‍🔥, отправь другу, и забирай несколько полезных функций, которые уже ждут тебя здесь:

🚩 Пример типового решения:
def F(n):
if n <= 7:
return 1
else:
return n + 2 + F(n - 1)

print(F(2024) - F(2020))


🚩 Дополнительная библиотека:
from sys import *
setrecursionlimit(10000)


🚩 Ещё одна дополнительная библиотека:
from functools import *

@lru_cache(None)


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
754
This media is not supported in your browser
VIEW IN TELEGRAM
1⃣2⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ12 #шпора

📌 Ссылка на полную версию шпаргалки/методички на Notion.

Поставь ❤‍🔥, отправь другу, и забирай несколько полезных функций, которые уже ждут тебя здесь:

🚩 Пример типового решения:
s = 170 * '1' + 100 * '3' + 7 * '2'

while '11' in s:
s = s.replace('112', '4', 1)
s = s.replace('113', '2', 1)
s = s.replace('42', '3', 1)
s = s.replace('43', '1', 1)

print(s)


🚩 s = 170 * '1' + 100 * '3' + 7 * '2'
Пример создания строка s, состоящая из 170 символов '1', за которыми следует 100 символов '3', а затем 7 символов '2'.


🚩 while '11' in s:
Начинается цикл, который будет выполняться до тех пор, пока в строке s есть подстрока '11'.


🚩 if '11' in s:
Если в строке s есть подстрока '11', то:


🚩 s = s.replace('112', '4', 1)
Заменяется первое вхождение подстроки '112' на символ '4' в строке s.


🚩 summa = sum([int(i) for i in s])
Создается переменная summa, с суммой цифр строки.


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


🚩 Условие задачи:
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [326496; 649632], числа, у которых количество четных делителей равно количеству нечетных делителей. При этом в каждой из таких групп делителей не менее 70 элементов. Для каждого найденного числа запишите само число и минимальный делитель, больший 1000.


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


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


for x in range(326496, 649632+1):
d = Divisors(x)
chet = [a for a in d if a % 2 == 0]
nechet = [a for a in d if a % 2 != 0]
if len(chet) == len(nechet):
if len(chet) >= 70 and len(nechet) >= 70:
print(x, min([a for a in d if a > 1000]))

# Ответ: 315


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

1⃣ def Divisors(x):
Функцию Divisors() комментировать не буду, опишу её постом ниже.


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


3⃣ d = Divisors(x)
Вызов функции Divisors(x), которая возвращает список делителей числа x.


4⃣ chet = [a for a in d if a % 2 == 0]
Формирование списка chet, содержащего только четные делители числа x.


5⃣ nechet = [a for a in d if a % 2 != 0]
Формирование списка nechet, содержащего только нечетные делители числа x.


6⃣ if len(chet) == len(nechet):
Проверка, равны ли длины списков четных и нечетных делителей числа x.


7⃣ if len(chet) >= 70 and len(nechet) >= 70:
Проверка, имеют ли списки четных и нечетных делителей числа x по крайней мере по 70 элементов.


8⃣ print(x, min([a for a in d if a > 1000]))
Вывод числа x вместе с минимальным делителем, превышающим 1000.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
1043
Please open Telegram to view this post
VIEW IN TELEGRAM
9642
📚 Шпаргалка ЕГЭ | Базовые функции python #tpy

Функции и их краткие описания с примерами:

1⃣ range(start, stop, step) - создает последовательность чисел от start до stop-1 с указанным шагом step.
for i in range(1, 6, 2):
print(i)
# Выведет: 1, 3, 5


2⃣ max(iterable) - находит максимальное значение в итерируемом объекте.
nums = [5, 2, 8, 1, 9]
print(max(nums))
# Выведет: 9


3⃣ len(iterable) - возвращает длину итерируемого объекта (количество элементов).
fruits = ["apple", "banana", "orange"]
print(len(fruits))
# Выведет: 3


4⃣ sum(iterable) - возвращает сумму всех элементов в итерируемом объекте.
numbers = [1, 2, 3, 4]
print(sum(numbers))
# Выведет: 10


5⃣ sorted(iterable) - возвращает отсортированный список элементов итерируемого объекта.
nums = [5, 2, 8, 1, 9]
sorted_nums = sorted(nums)
print(sorted_nums)
# Выведет: [1, 2, 5, 8, 9]


6⃣ open().readline() - открывает файл и возвращает первую строку из него.
with open("file.txt") as file:
first_line = file.readline()
print(first_line)


7⃣ int(s, n) - преобразует строку s в целое число в системе счисления n.
binary_num = "1010"
decimal_num = int(binary_num, 2)
print(decimal_num)
# Выведет: 10


8⃣ str() - преобразует объект в строковое представление.
number = 42
str_number = str(number)
print(str_number)
# Выведет: "42"


0⃣ all(iterable) - возвращает True, если все элементы в итерируемом объекте истинные.
bools = [True, True, False]
print(all(bools))
# Выведет: False


1⃣0⃣ any(iterable) - возвращает True, если хотя бы один элемент в итерируемом объекте истинный.
bools = [False, False, True]
print(any(bools))
# Выведет: True


1⃣1⃣ print(*objects) - выводит переданные объекты в консоль.
name = "Alice"
print("Hello, ", name)
# Выведет: Hello, Alice


1⃣2⃣ map(function, iterable) - применяет функцию к каждому элементу итерируемого объекта.
nums = [1, 2, 3]
squares = list(map(lambda x: x*x, nums))
print(squares)
# Выведет: [1, 4, 9]


Данный пост поможет вам быстро освоить базовые функции Python из списка. Пишите в комментарии, если я что-то забыл 👇

Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
13333