This media is not supported in your browser
VIEW IN TELEGRAM
Автор задачи: (А. Игнатюк)
Уровень: Сложный
Дано арифметическое выражение 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
ALPHABET = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
Создается отсортированный список ALPHABET, содержащий цифры от 0 до 9 и буквы английского алфавита в верхнем регистре.
my_set = set()
Создается пустое множество my_set, в которое будут добавляться уникальные результаты.
for y in range(9, 16):
Запускается внешний цикл for, перебирающий значения от 9 до 15 (не включительно) и присваивающий их переменной y.
for x in ALPHABET[:y]:
Запускается вложенный цикл for, перебирающий элементы из списка ALPHABET до y-го индекса (не включительно) и присваивающий их переменной x.
A = int(f'5{x}{ALPHABET[y]}C', 16)
Создается переменная A, в которую записывается число, представленное строкой с основанием 16, составленное из символов '5', x, ALPHABET[y] и 'C'.
B = int(f'8{x}{x}7', y)
Создается переменная B, в которую записывается число, представленное строкой с основанием y, составленное из символов '8', x, x и '7'.
my_set.add(A+B)
Сумма чисел A и B добавляется в множество my_set.
print(len(my_set))
Выводится длина множества my_set, которая представляет количество уникальных результатов.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Уровень: Средний
Определите наибольшее значение 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
def my_int(M: list, n: int):
Параметры: M (список чисел) и n (основание системы счисления).
r = 0
Создается переменная r, которая будет содержать итоговое значение.
M.reverse()
Инвертируется список M для удобного вычисления числа.
for i in range(0, len(M)):
Запускается цикл for, перебирающий индексы элементов списка M.
r += M[i] * n ** i
К итоговому значению r прибавляется произведение элемента списка M[i] на степень основания n в степени i.
return r
Функция возвращает значение r.
R = []
Создается пустой список R, куда будут добавляться результаты.
for x in range(0, 80):
Запускается цикл for, перебирающий значения от 0 до 79 и присваивающий их переменной x.
A = my_int([3, x, 7, 5], 80) + my_int([1, 4, x, 0], 80)
Вычисляется значение A, равное сумме результатов функции my_int для списков с основанием 80.
if A % 17 == 0:
Проверяется, делится ли число A на 17.
R.append(A // 17)
Если число A делится на 17, результат целочисленного деления A на 17 добавляется в список R.
print(max(R))
Выводится наибольший элемент из списка R.
Понравился пост? Поддержи реакцией:
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Подготовил для вас методическое пособие по решению 14 номера!
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
from string import *
alphabet = digits + ascii_uppercase
for y in alphabet[:n]:
x = int(f'79{x}{y}7', n)
bin()[2:] # перевод в 2-ую
oct()[2:] # перевод в 8-ую
hex()[2:] # перевод в 16-ую
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
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Средний
Числа 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
def my_int(num, base):
Определение функции my_int, которая принимает список чисел num и основание base.
return sum(x*base**i for i, x in enumerate(num[::-1]))
Функция возвращает сумму произведений элементов списка num на соответствующие степени base.
for p in range(16, 100):
Запуск цикла for, который перебирает числа от 16 до 99 и использует их в качестве p.
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 равен нулю.
print(p)
Вывод числа p, которое удовлетворяет условиям, после чего программа завершает работу, используя оператор break.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Л. Шастин
Уровень: Базовый
В некоторой системе счисления с основанием 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
for p in range(31, 36+1): # U - 30
Цикл for, который проходит по значениям p от 31 до 36 включительно. Комментарий указывает на то, что в данном случае символ 'U' представляет число 30 в системе счисления с основанием p.
if int('TH', p) + int('NQ', p) + int('U', p) == int('1L7', p):
Условное выражение, которое проверяет, равно ли суммарное значение чисел, представленных строками 'TH', 'NQ' и 'U' в системе счисления с основанием p, числу, представленному строкой '1L7' в той же системе счисления.
print(p)
Если условие из предыдущего пункта истинно, выводится значение p, при котором выполняется условие.
Поддержать автора: boosty
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Е.Джобс
Уровень: Базовый
Операнды арифметического выражения записаны в системе счисления с основанием 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
R = []
Создание пустого списка R, в который будут добавляться результаты.
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
Формирование отсортированного списка alphabet, содержащего цифры и латинские буквы.
for x in alphabet[:21]:
Цикл for, который проходит по первым 21 символу из списка alphabet.
for y in alphabet[:21]:
Еще один вложенный цикл for, который также проходит по первым 21 символу из списка alphabet.
A = int(f'943697{x}21', 21)
Формирование числа A из строки, включающей '943697', символ x и '21'.
B = int(f'2{y}9253', 21)
Аналогичное действие для переменной B, где формируется число из строки '2', символа y и '9253'.
if (A - B) % 20 == 0:
Условие проверяет, делится ли разность A и B на 20 без остатка.
R.append([int(x, 21) - int(y, 21), (A - B) // 20])
Добавление в список R кортежа, содержащего разность x и y, а также результат деления разности A и B на 20.
print(max(R)[1])
Вывод второго элемента максимального кортежа в списке R.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Значение арифметического выражения 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
Дано арифметическое выражение:
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
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
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
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
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: 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')
Создаем отсортированный список символов из строки, содержащей цифры и заглавные буквы английского алфавита.
M = [2 ** x for x in range(0, 100)]
Создаем список степеней двойки от 2^0 до 2^99 (всего 100 элементов).
for x in alphabet[:8]:
Проходим в цикле по первым 8 символам из отсортированного списка alphabet.
a = int(f'{x}1{x}', 16)
Формируем строку вида 'x1x', где x - текущий символ из alphabet, и преобразуем её из шестнадцатеричной в десятичное число.
b = int(f'{x}3{x}3', 8)
Формируем строку вида 'x3x3', где x - текущий символ из alphabet, и преобразуем её из восьмеричной в десятичное число.
if a + b in M:
Проверяем, входит ли сумма чисел a и b в список степеней двойки M.
print(x)
Если условие выполняется, выводим на экран текущий символ x.
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
2 6 5 4
Автор: Пробник ИМЦ СПб,
6594
Уровень: Базовый
Условие задачи:
Операнды арифметического выражения записаны в системе счисления с основанием 13: 753x2_13 + 2x173_13
В записи чисел переменной x обозначена неизвестная цифра из алфавита 13-ричной системы счисления.
Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 12.
Для найденного значения x вычислите частное от деления значения арифметического выражения на 12 и укажите его в ответе в десятичной системе счисления.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Демоверсия 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
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
Создаем упорядоченный список символов, содержащий цифры и буквы алфавита.
for x in alphabet[:19]:
Запускаем цикл по первым 19 символам из отсортированного алфавита.
A = int(f'98897{x}21', 19)
Преобразуем строку, состоящую из фиксированной последовательности '98897', текущего символа x и '21', в целое число с основанием 19.
B = int(f'2{x}923', 19)
Преобразуем строку, состоящую из '2', текущего символа x и '923', в целое число с основанием 19.
if (A + B) % 18 == 0:
Проверяем, делится ли сумма A и B на 18 без остатка.
print((A + B) // 18)
Если условие выполнено, выводим целую часть результата деления суммы A и B на 18.
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
3 10 3 3
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Демоверсия 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
for x in range(2030+1):
Запускаем цикл, перебирая числа от 0 до 2030 включительно.
n = 7**170 + 7**100 - x
Вычисляем значение n как разность между суммой больших степеней числа 7 и текущим значением x.
b = 7
Устанавливаем основание системы счисления b равным 7.
R = []
Инициализируем пустой список R, который будет использоваться для хранения цифр числа n в системе счисления с основанием b.
while n > 0:
Запускаем цикл, который продолжается до тех пор, пока n больше 0.
R = [n % b] + R
Добавляем остаток от деления n на b (последнюю цифру в системе счисления) в начало списка R.
n //= b
Обновляем значение n, целочисленно деля его на b, чтобы перейти к следующей цифре.
if R.count(0) == 71:
Проверяем, содержит ли список R ровно 71 ноль.
print(x)
Если условие выполнено, выводим текущее значение x.
Второй канал про теорию Python
Please open Telegram to view this post
VIEW IN TELEGRAM
3 8 4 3
This media is not supported in your browser
VIEW IN TELEGRAM
Подготовил для вас шпоргалочку для решению 14 номера!
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
from string import *
alphabet = digits + ascii_uppercase
for y in alphabet[:n]:
x = int(f'79{x}{y}7', n)
bin()[2:] # перевод в 2-ую
oct()[2:] # перевод в 8-ую
hex()[2:] # перевод в 16-ую
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
2 8 3 3
Наша подборка Stepik задач №14 для подготовки
1. Домашка, задачи базового уровня (ФИПИ)
2. Практика, задачи повышенной сложности
Уровень: Базовый
Автор задачи: (М. Попков)
Уровень: Средний
Автор задачи: (А. Игнатюк)
Уровень: Сложный
Уровень: Средний
Автор: Статград
Уровень: Средний
Автор: Е.Джобс
Уровень: Базовый
Автор: Л. Шастин
Уровень: Базовый
Автор: Демоверсия 2025
Уровень: Базовый
Автор: Демоверсия 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
Автор: (К. Багдасарян)
Уровень: Базовый
Значение арифметического выражения: 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
for x in range(60000, 0, -1):
Запускаем цикл, перебирая значения x от 60000 до 1 (включительно), уменьшая x на 1 на каждой итерации.
n = 3**2000 + 3**10 - x
Вычисляем n как сумму 3 в степени 2000 и 3 в степени 10, затем вычитаем текущее значение x.
r = convert(n, 3)
Преобразуем число n в представление в системе счисления с основанием 3 и сохраняем результат в переменную r.
if r.count('2') == 2000:
Проверяем, содержится ли в строке r ровно 2000 символов '2'.
print(x)
Если условие истинно, выводим текущее значение x.
break
Прерываем цикл, так как нужное значение x найдено.
Второй канал про теорию 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
Автор: 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
for x in '0123456789ABCDEFGHI':
Запускаем цикл, который будет перебирать все символы от 0 до I в строке.
A = int('78x79643'.replace('x', x), 19)
Заменяем 'x' на текущий символ и преобразуем строку в целое число в системе счисления с основанием 19, сохраняя результат в A.
B = int('25x43'.replace('x', x), 19)
Аналогично, заменяем 'x' в другой строке и преобразуем её в целое число в системе счисления с основанием 19, сохраняя результат в B.
C = int('63x5'.replace('x', x), 19)
Заменяем 'x' в третьей строке, преобразуем строку в целое число в системе счисления с основанием 19 и сохраняем в C.
if (A + B + C) % 18 == 0:
Проверяем, делится ли сумма A, B и C на 18 без остатка.
print((A + B + C) // 18)
Если условие выполняется, выводим результат деления суммы на 18.
break
Завершаем цикл, если нашли подходящее значение, чтобы избежать дальнейших итераций.
Наша Stepik подборкой задач
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8 3👍1🔥1
Операнды арифметического выражения записаны в системе счисления с основанием 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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤5❤🔥5