This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Основная волна 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
for x in range(2030+1):
Цикл for, который перебирает числа от 0 до 2030 включительно и присваивает каждое число переменной x.
n = 7**91 + 7**160 - x
Вычисление значения переменной n как суммы двух степеней числа 7 и значения x.
M = []
Инициализация списка M, который будет содержать цифры полученного числа n в семеричной системе счисления.
while n > 0:
Цикл while, который будет выполняться, пока значение n больше нуля.
M.append(n % 7)
Добавление остатка от деления текущего значения n на 7 в список M.
n //= 7
Целочисленное деление n на 7 для перехода к следующей цифре в семеричной записи.
M.reverse()
Разворот списка M, чтобы получить корректный порядок цифр числа в семеричной системе.
if M.count(0) == 70:
Проверка, содержит ли список M ровно 70 нулей.
print(x)
Вывод числа x, которое удовлетворяет условию с результатом семеричного представления числа n содержащего 70 нулей.
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
Думаю результаты уже пришли всем, и только ленивый не успел обсудить их. Меня, всё равно, интересует, какие баллы получили мои подписчики!?
И что ещё более интересно, как вы готовились к экзамену? Какие курсы проходили? Какие советы можете дать другим?
И что ещё более интересно, как вы готовились к экзамену? Какие курсы проходили? Какие советы можете дать другим?
Anonymous Poll
12%
0-40
22%
40-60
9%
60-70
21%
70-80
18%
80-90
7%
90-95
10%
95-100
Что выведет этот код? 🤔
1️⃣
2️⃣
3️⃣
Информатика ЕГЭ | itpy 👨💻
Поддержать автора донатом 💵
1️⃣
[-3, -6, -9]
2️⃣
[ ]
3️⃣
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
Информатика ЕГЭ | itpy 👨💻
Поддержать автора донатом 💵
Информатика | Илья Андрианов | itpy 🧑💻
Что выведет этот код? 🤔 1️⃣ [-3, -6, -9] 2️⃣ [ ] 3️⃣ [[1, 2, 3], [1, 2, 3], [1, 2, 3]] Информатика ЕГЭ | itpy 👨💻 Поддержать автора донатом 💵
Умножение списков на отрицательное число или на нуль равносильно удалению всех элементов списка
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
В мире математики делители числа имеют важное значение, и в Python можно легко создать функцию, которая найдет все делители данного числа. Давайте рассмотрим функцию divisors(x):
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))
divisors(x)
принимает один аргумент x
, который является целым числом, для которого мы ищем делители.int(x ** 0.5) + 1
проходимся по всем числам от 1 до квадратного корня из x
.j
является делителем x
(то есть x % j == 0
), то мы добавляем j
и x // j
в список делителей div
, так как x // j
это сомножитель числа j
.▪️Вызов
divisors(24)
вернет [1, 2, 3, 4, 6, 8, 12, 24]
, так как делители числа 24 - это все числа от 1 до 24, которые делят это число без остатка.▪️Вызов
divisors(16)
вернет [1, 2, 4, 8, 16]
, поскольку делители числа 16 - это числа, которые можно поделить на 16, начиная с 1 и заканчивая самим 16.Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Основная волна 08.06.24
Уровень: Средний
Пусть М – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа.
Напишите программу, которая перебирает целые числа, большие 700 000, в порядке возрастания и ищет среди них такие, для которых М оканчивается на 4.
В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце - соответствующие им значения М.
В данной задаче нас просят не учитывать единицы и само число, поэтому диапазон в for j in range(2, int(x ** 0.5) + 1): начинаем с 2.
Кстати про саму функцию divisors() уже был пост.
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))
k = 0
for x in range(700_001, 10**10):
d = divisors(x)
if len(d) >= 2:
M = min(d) + max(d)
if abs(M) % 10 == 4:
print(x, M)
k += 1
if k == 5:
break
# Ответ:
# 700004 350004
# 700009 41194
# 700023 233344
# 700024 350014
# 700044 350024
k = 0
Инициализация переменной k, которая будет считать количество найденных чисел.
for x in range(700_001, 10**10):
Цикл перебора чисел от 700001 до 10**10.
d = divisors(x)
Вызов функции divisors() для нахождения делителей числа x.
if len(d) >= 2:
Проверка наличия как минимум двух делителей.
M = min(d) + max(d)
Нахождение суммы минимального и максимального делителя числа x.
if abs(M) % 10 == 4:
Проверка условия: остаток от деления абсолютной величины суммы делителей M на 10 равен 4.
print(x, M)
Вывод числа x и суммы делителей M.
k += 1
Увеличение счетчика найденных чисел.
if k == 5:
Проверка, достигнут ли лимит в 5 найденных чисел.
break
Прерывание цикла после нахождения 5 чисел.
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
В Python импорт модулей - это важный аспект, который позволяет использовать функциональность, определенную в других файлах, в своем коде. Этот подход делает программирование более организованным, уменьшает дублирование кода и упрощает совместную разработку.
При импорте модулей в Python вы можете использовать различные подходы, такие как:
1. Импорт всего модуля:
import module_name
2. Импорт конкретного объекта из модуля:
from module_name import object_name
3. Импорт модуля с псевдонимом:
import module_name as alias
Примеры использования импорта модулей:
# Импорт модуля math
import math
print(math.sqrt(16)) # Выведет 4.0
# Импорт функции randint из модуля random
from random import randint
print(randint(1, 10)) # Выведет случайное число от 1 до 10
# Импорт модуля datetime с псевдонимом dt
import datetime as dt
print(dt.datetime.now()) # Выведет текущую дату и время
Подробнее о импорте модулей в Python вы можете прочитать в данной статье на Notion, а также следите за интересными материалами в моём канале.
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет этот код? 🤔
1️⃣
2️⃣
3️⃣
Информатика ЕГЭ | itpy 👨💻
Поддержать автора донатом 💵
1️⃣
Произойдет ошибка
2️⃣
0,9
3️⃣
(0, 3, 0, 3, 0, 3)
Информатика ЕГЭ | itpy 👨💻
Поддержать автора донатом 💵
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Основная волна 07.06.24
Уровень: Базовый
На числовой прямой даны два отрезка: P=[15;40] и Q=[21;63].
Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение (x∈P)→(((x∈Q)∧¬(x∈A))→¬(x∈P)) истинно (т.е. принимает значение 1) при любом значении переменной х.
def F(x, a1, a2):
P = 15 <= x <= 40
Q = 21 <= x <= 63
A = a1 <= x <= a2
return P <= ((Q and (not A)) <= (not P))
R = []
M = [x / 4 for x in range(5 * 4, 80 * 4)]
for a1 in M:
for a2 in M:
if all(F(x, a1, a2) for x in M):
R.append(a2 - a1)
print(round(min(R)))
# Ответ: 19
def F(x, a1, a2):
Определение функции F с параметрами x, a1 и a2.
P = 15 <= x <= 40
Проверка условия нахождения x в интервале от 15 до 40.
Q = 21 <= x <= 63
Проверка условия нахождения x в интервале от 21 до 63.
A = a1 <= x <= a2
Проверка условия нахождения x в интервале между a1 и a2.
return P <= ((Q and (not A)) <= (not P))
Возвращение результата выражения, описывающего взаимосвязь между P, Q, и A.
R = []
Инициализация пустого списка R, в который будут сохраняться значения.
M = [x / 4 for x in range(5 * 4, 80 * 4)]
Создание списка M с числами, равными x / 4, где x изменяется от 20 до 320 с шагом 1.
for a1 in M:
Цикл перебора значений из списка M для переменной a1.
for a2 in M:
Вложенный цикл перебора значений из списка M для переменной a2.
if all(F(x, a1, a2) for x in M):
Проверка условия с помощью функции F для всех значений x из списка M.
R.append(a2 - a1)
Добавление разности a2 - a1 в список R.
print(round(min(R)))
Вывод минимального значения из списка R после округления.
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Работа с файлами в Python - это важный аспект программирования, позволяющий читать, записывать и обрабатывать данные в файлах.
В данной статье мы рассмотрим основные методы и приемы, которые помогут вам в ваших работах.
А в следующем посту рассмотрим несколько примеров открытия файлов с ЕГЭ.
file = open("example.txt", "r") # Открываем файл example.txt на чтение
content = file.read()
print(content)
file = open("example.txt", "r") # Открытие файла для чтения
for line in file:
print(line.strip())
file.close()
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
from itertools import *
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
cnt = 0
for per in product(alphabet[:17], repeat=5):
w = ''.join(per)
if w[0] != '0':
if w.count('3') == 1:
if len([x for x in w if x > 'C']) <= 3:
cnt += 1
print(cnt)
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
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))
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
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))
cnt = 0
for x in range(600_000+1, 10**10):
d = [j for j in divisors(x) if j % 10 == 7 and j != 7 and j != x]
if len(d) > 0:
print(x, min(d))
cnt += 1
if cnt == 5:
break
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
R = []
for n in range(1, 1000):
s = f'{n:b}' # s = bin(n)[2:]
if n % 2 == 0:
s = s + '10'
else:
s = '1' + s + '01'
r = int(s, 2)
if n < 11:
R.append(r)
print(min(R))
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
a = 2 # – Стерео
b = 72000 # – Частота дискретизации
# c = ? – Битовое разрешение
t = 28 * 60 + 40 # – Общая длительность 17 треков
bit_all = 14_680_064 * 380
print(bit_all) # 5578424320 – бит
bit = bit_all - 17 * 308 * 2**13 # – Кбайт перевожу в бит (для 17 треков)
c = bit / (a * b * t)
print(c) # 22.34952...
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
import sys
sys.setrecursionlimit(10000)
def F(n):
if n == 1:
return 1
if n > 1:
return (n - 1) * F(n - 1)
print((2*F(2024) - F(2023)) / F(2022))
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
def F(a, b):
if a >= b:
return a == b
return F(a+1, b) + F(a+2, b) + F(a+3, b)
print(F(3, 9) * F(9, 13))
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
M = [int(x) for x in open('17.txt')]
D = [x for x in M if x > 0]
R = []
for i in range(len(M)-1):
x, y = M[i], M[i+1]
if x < 0 or y < 0:
if x + y % min(D) == 0:
R.append(x + y)
print(len(R), max(R))
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
cnt = 0
for s in open('9.csv'):
M = [int(x) for x in s.split(';')]
copied = [x for x in M if M.count(x) == 2]
not_copied = [x for x in M if M.count(x) == 1]
if len(copied) == 4 and len(not_copied) == 2:
if sum(copied) < sum(not_copied):
cnt += 1
print(cnt)
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
def F(x, y):
return (x + y <= 26) or (y <= x - 4) or (y >= A)
for A in range(1000):
if all(F(x, y) for x in range(100) for y in range(100)):
print(A)
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM