14.02 Поиск цифр(-ы) числа
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 17.
В записи чисел переменной обозначена неизвестная цифра из алфавита 17-ричной системы счисления.
Определите наименьшее значение
, при котором значение данного арифметического выражения в
десятичной системе счисления кратно 49. Для найденного значения
вычислите частное от деления значения
арифметического выражения на 49 и укажите его в ответе. Основание системы счисления в ответе указывать не
нужно.
Решение программой:
Даны два числа в -ричной системе счисления:
и
, в которых x обозначает неизвестную цифру
из алфавита этой системы. Основание
больше
, поэтому цифры от 10 до 16 обозначаются буквами латинского
алфавита: a — 10, b — 11, …, g — 16. Чтобы перебрать все возможные значения x, мы создаём строку a =
’0123456789abcdefg’, где каждый символ представляет возможное значение x. Далее мы используем цикл for x in a,
который на каждой итерации подставляет текущий символ вместо x в оба числа. Для перевода чисел из
-ричной
системы в десятичную используем встроенную функцию int(строка, 17), где строка — текстовое представление числа с
подставленным x. Например, при x = ’2’ первое число формируется как ’11’ + x + ’586’, то есть ’112586’, и переводится
в десятичную систему как int(’112586’, 17). Аналогично формируется второе число ’5’ + x + ’211’. После
получения десятичных значений чисел мы находим их сумму s1 + s2 и проверяем, делится ли она на
49, используя проверку if (s1 + s2) % 49 == 0. Поскольку перебор значений x идёт от наименьшего к
наибольшему, первый найденный результат будет соответствовать минимальному значению x, удовлетворяющему
условию. В случае успешной проверки мы выводим частное от деления суммы на 49 через (s1 + s2) //
49.
# Определяем алфавит 17-ричной системы счисления: от 0 до 9, затем a=10, b=11, ..., g=16 a = "0123456789abcdefg" # Перебираем все возможные значения x из алфавита системы for x in a: # Формируем строку первого числа $11x586_{17}$ с подставленным x # И переводим её в десятичное число функцией int(строка, 17) s1 = int("11" + x + "586", 17) # Формируем строку второго числа $5x211_{17}$ с подставленным x # И также переводим её в десятичную систему s2 = int("5" + x + "211", 17) # Проверяем, делится ли сумма чисел на 49 if (s1 + s2) % 49 == 0: # Если делится, выводим частное от деления суммы на 49 print((s1 + s2) // 49)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 25.
В записи чисел переменной обозначена неизвестная цифра из алфавита 25-ричной системы счисления.
Определите наименьшее значение
, при котором значение данного арифметического выражения в
десятичной системе счисления кратно 44. Для найденного значения
вычислите частное от деления значения
арифметического выражения на 44 и укажите его в ответе. Основание системы счисления в ответе указывать не
нужно.
Решение программой:
Даны два числа в -ричной системе счисления:
и
, в которых x обозначает
неизвестную цифру из алфавита этой системы. Основание
больше
, поэтому цифры от 10 до 24
обозначаются буквами латинского алфавита: a — 10, b — 11, …, o — 24. Чтобы перебрать все возможные
значения x, мы создаём строку a = ’0123456789abcdefghijklmno’, где каждый символ представляет возможное
значение x. Далее мы используем цикл for x in a, который на каждой итерации подставляет текущий символ
вместо x в оба числа. Для перевода чисел из
-ричной системы в десятичную используем встроенную
функцию int(строка, 25), где строка — текстовое представление числа с подставленным x. Например,
при x = ’2’ первое число формируется как ’b0’ + x + ’6’ + x + ’3’, то есть ’b02623’, и переводится в
десятичную систему как int(’b02623’, 25). Аналогично формируется второе число ’f0’ + x + ’c21’. После
получения десятичных значений чисел мы находим их сумму s1 + s2 и проверяем, делится ли она на
44, используя проверку if (s1 + s2) % 44 == 0. Поскольку перебор значений x идёт от наименьшего к
наибольшему, первый найденный результат будет соответствовать минимальному значению x, удовлетворяющему
условию. В случае успешной проверки мы выводим частное от деления суммы на 44 через (s1 + s2) //
44.
# Определяем алфавит 25-ричной системы счисления: от 0 до 9, затем a=10, b=11, ..., o=24 a = ’0123456789abcdefghijklmno’ # Перебираем все возможные значения x из алфавита системы for x in a: # Формируем строку первого числа $B0x6x3_{25}$ с подставленным x # И переводим её в десятичное число функцией int(строка, 25) s1 = int(’b0’ + x + ’6’ + x + ’3’, 25) # Формируем строку второго числа $F0xC21_{25}$ с подставленным x # И также переводим её в десятичную систему s2 = int(’f0’ + x + ’c21’, 25) # Проверяем, делится ли сумма чисел на 44 if (s1 + s2) % 44 == 0: # Если делится, выводим частное от деления суммы на 44 print((s1 + s2) // 44)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 123.
В записи чисел переменной обозначена неизвестная цифра из алфавита 123-ричной системы счисления.
Определите наибольшее значение
, при котором значение данного арифметического выражения в десятичной системе
счисления кратно 11. В ответе запишите только наибольшее значение
.
Решение программой:
Даны два числа в -ричной системе счисления:
и
, в которых x обозначает
неизвестную цифру из алфавита системы. Поскольку основание системы большое, удобнее работать с десятичными
числами, используя разложение по степеням основания. Для первого числа
каждая цифра
переводится в десятичное число: D = 13, 1 = 1, 5 = 5, x остаётся переменной, 6 = 6, A = 10. Соответственно,
десятичное значение числа вычисляется как
. Для
второго числа
аналогично: E = 14, x остаётся переменной, C = 12, A = 10, 1 = 1, 9 = 9, и
его десятичное значение равно
. Далее мы
суммируем оба числа, получая значение арифметического выражения в десятичной системе. Проверка условия
кратности 11 осуществляется с помощью if s % 11 == 0, где s — сумма чисел. Мы перебираем все значения x
от 0 до 122 с помощью цикла for x in range(123). Поскольку требуется найти наибольшее значение x,
удовлетворяющее условию, мы выводим x всякий раз, когда сумма делится на 11; последний выведенный x и будет
наибольшим.
# Перебираем все возможные значения x от 0 до 122, так как в 123-ричной системе цифры от 0 до 122 for x in range(123): # Вычисляем десятичное значение первого числа $D15x6A_{123}$, где x — неизвестная цифра s1 = 13 * 123**5 + 1 * 123**4 + 5 * 123**3 + x * 123**2 + 6 * 123**1 + 10 * 123**0 # Вычисляем десятичное значение второго числа $ExCA191_{123}$, где x — неизвестная цифра s2 = 14 * 123**5 + x * 123**4 + 12 * 123**3 + 10 * 123**2 + 1 * 123**1 + 9 * 123**0 # Находим сумму чисел — значение арифметического выражения s = s1 + s2 # Проверяем, делится ли сумма на 11 if s % 11 == 0: # Если делится, выводим текущее значение x print(x)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 21.
В записи чисел переменной обозначена неизвестная цифра из алфавита 21-ричной системы счисления.
Определите наименьшее значение
, при котором значение данного арифметического выражения в
десятичной системе счисления кратно 53. Для найденного значения
вычислите частное от деления значения
арифметического выражения на 53 и укажите его в ответе. Основание системы счисления в ответе указывать не
нужно.
Даны два числа в 21-ричной системе счисления: и
, в которых x обозначает неизвестную цифру из
алфавита системы. Мы знаем алфавит 21-ричной системы — это ’0123456789ABCDEFGHIJK’, где каждая буква
соответствует числу от 10 до 20. Для решения задачи мы перебираем все возможные значения x по порядку из этого
алфавита с помощью цикла for x in a. На каждом шаге мы формируем строки, представляющие числа: ’12’ + x + ’AC’
для первого числа и ’90F’ + x + ’E’ для второго. Затем, используя функцию int(строка, 21), мы переводим эти строки в
десятичные числа. После этого суммируем оба числа и проверяем, делится ли сумма на 53 с помощью условия if (s1 +
s2) % 53 == 0. Поскольку нам нужно наименьшее значение x, удовлетворяющее условию, как только
оно найдено, мы выводим частное от деления суммы на 53 и прерываем цикл командой break. Таким
образом, алгоритм сразу даёт ответ при первом подходящем x, без перебора всех остальных возможных
значений.
# Алфавит 21-ричной системы счисления a = ’0123456789ABCDEFGHIJK’ # Перебираем все возможные значения x из алфавита for x in a: # Составляем первое число $12xAC_{21}$ в виде строки и переводим его в десятичное число s1 = int(’12’+x+’AC’, 21) # Составляем второе число $90FxE_{21}$ в виде строки и переводим его в десятичное число s2 = int(’90F’+x+’E’, 21) # Проверяем, делится ли сумма чисел на 53 if (s1+s2) % 53 == 0: # Если делится, выводим частное от деления суммы на 53 print((s1+s2)//53) # Прерываем цикл, так как нам нужно наименьшее x break
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 14:
В записи чисел переменной x обозначена неизвестная цифра из алфавита четырнадцатеричной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 26. Для найденного значения x вычислите частное от деления значения арифметического выражения на 26 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Решение программой
Даны два числа в 14-ричной системе счисления: и
, в которых x обозначает неизвестную цифру из
алфавита системы ’0123456789ABCD’. Мы начинаем с определения строки digits, содержащей все допустимые символы
14-ричной системы. Затем перебираем все возможные значения x по порядку с помощью цикла for x in digits. На
каждом шаге мы формируем строковые представления чисел: ’2’ + x + ’745’ для первого числа и ’53’ + x + ’65’ для
второго, и переводим их в десятичные числа функцией int(строка, ss), где ss — основание системы счисления, равное 14.
После этого суммируем эти числа, получая значение арифметического выражения. Далее проверяем, делится ли
сумма на 26, используя условие if s % 26 == 0. Как только находим подходящую цифру x, выводим
частное от деления суммы на 26 с помощью print(s // 26) и прерываем цикл командой break, так как
требуется наименьшее значение x, удовлетворяющее условию. Таким образом, алгоритм обеспечивает
точный перебор всех возможных значений x и сразу выдаёт нужный результат при первом подходящем
x.
# Строка, содержащая все цифры 14-ричной системы счисления digits = "0123456789ABCD" # Основание системы счисления ss = 14 # Перебираем все возможные значения x for x in digits: # Формируем первое число $2x745_{14}$ в виде строки и переводим его в десятичное число s1 = int("2" + x + "745", ss) # Формируем второе число $53x65_{14}$ в виде строки и переводим его в десятичное число s2 = int("53" + x + "65", ss) # Находим сумму чисел s = s1 + s2 # Проверяем, делится ли сумма на 26 if s % 26 == 0: # Если делится, выводим частное от деления на 26 print(s // 26) # Прерываем цикл, так как найдено наименьшее подходящее x break
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системах счисления с основаниями 13 и 17:
В записи чисел переменными x и y обозначены допустимые в данных системах счисления неизвестные цифры. Определите значения x и y, при которых значение данного арифметического выражения будет наименьшим и кратно 81. Для найденных значений x и y вычислите частное от деления значения арифметического выражения на 81 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Решение программой:
Даны два числа, и
, в которых переменные x и y обозначают неизвестные цифры, допустимые в
соответствующих системах счисления: для первой цифры x — это символы ’0’–’C’ в 13-ричной системе, для второй y —
те же символы, используемые в 13-ричной системе (т.к. символы DEFG из 17-ричной сс нельзя использовать в
13-ричной, а у присутствует в первом слагаемом). Мы начинаем с перебора всех возможных значений x и y с помощью
вложенных циклов for x in ’0123456789ABC’ и for y in ’0123456789ABC’. На каждом шаге формируем строковые
представления чисел: ’1’ + x + ’41’ + y для первого числа и ’67’ + x + ’32’ + y для второго. Далее переводим эти
строки в десятичные числа с помощью функции int(строка, основание), где основание равно 13 для первого числа и 17
для второго. После преобразования суммируем полученные десятичные числа, получая значение арифметического
выражения. Проверка условия кратности 81 выполняется через if s % 81 == 0. Если сумма делится на 81,
выводим частное от деления на 81 с помощью print(s // 81). В данном алгоритме цикл проходит все
возможные комбинации x и y, что позволяет найти минимальное значение суммы, соответствующее заданному
условию.
# Перебираем все допустимые значения x в 13-ричной системе for x in ’0123456789ABC’: # Для каждого x перебираем все допустимые значения y for y in ’0123456789ABC’: # Формируем первое число $1x41y_{13}$ и переводим его в десятичную систему s1 = int(’1’ + x + ’41’ + y, 13) # Формируем второе число $67x32y_{17}$ и переводим его в десятичную систему s2 = int(’67’ + x + ’32’ + y, 17) # Находим сумму чисел s = s1 + s2 # Проверяем, делится ли сумма на 81 if s % 81 == 0: # Если делится, выводим частное от деления на 81 print(s // 81)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 17.
В записи чисел переменной х обозначена неизвестная цифра из алфавита 17-ричной системы счисления. Определите наибольшее значение х, при котором значение данного арифметического выражения кратно 12. Для найденного значения х вычислите частное от деления значения арифметического выражения на 12 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Решение программой:
Даны два числа и
, содержащие переменную x, которая может принимать значения из
алфавита 17-ричной системы счисления: ’0’–’G’. Мы начинаем с перебора всех возможных значений x с
помощью цикла for x in digits, где digits = "0123456789ABCDEFG". Для каждого выбранного x формируем
строковое представление первого числа ’3’ + x + ’3’ + x + ’8692’ и второго числа ’18’ + x + ’35’ + x
+ ’57’. Далее с помощью функции int(строка, основание) преобразуем эти строки в десятичные числа,
используя основание 17, и сохраняем их в переменные s1 и s2. После этого суммируем эти числа, получая
значение арифметического выражения s = s1 + s2. Проверка условия кратности 12 выполняется через if
s % 12 == 0. Если сумма делится на 12, выводим частное от деления на 12 с помощью print(s // 12).
Поскольку цикл перебирает значения x в порядке возрастания, максимальное x, для которого сумма
делится на 12, будет найдено в конце перебора и соответствующее частное также будет выведено для этого
x.
# Определяем все допустимые цифры 17-ричной системы счисления digits = "0123456789ABCDEFG" # Указываем основание системы счисления ss = 17 # Перебираем все возможные значения x for x in digits: # Формируем первое число $3x3x8692_{17}$ и переводим его в десятичную систему s1 = int("3" + x + "3" + x + "8692", ss) # Формируем второе число $18x35x57_{17}$ и переводим его в десятичную систему s2 = int("18" + x + "35" + x + "57", ss) # Вычисляем сумму чисел s = s1 + s2 # Проверяем, делится ли сумма на 12 if s % 12 == 0: # Если делится, выводим частное от деления на 12 print(s // 12)
Ошибка.
Попробуйте повторить позже
Дано арифметическое выражение . Определите, сколько различных значений может принимать
выражение при всех возможных x и y.
(Примечание: основание системы счисления понимается как переведенное в десятичную систему счисления
число)
Решение программой:
В условии даны два числа и
, где x и y — это цифры, которые могут принимать значения в
пределах допустимых символов для 15-ричной системы и для системы с основанием, равным значению x. Сначала
мы определяем алфавит для 16-ричной системы ’0123456789ABCDEF’ и создаём пустое множество c,
чтобы сохранять все уникальные значения суммы. Далее используем вложенные циклы: внешний цикл
перебирает x от 10 до 14 включительно (поскольку x рассматривается как основание системы счисления
для второго числа и должно быть больше y), а внутренний цикл перебирает y от 0 до x-1. Для каждого
сочетания x и y формируем первое число
в виде строки ’23’ + alf[x] + alf[y] + ’B’ и переводим его в
десятичное число с помощью int(строка, 15). Второе число
формируем как ’36’ + alf[y] + ’90’ и
переводим его в десятичное число с помощью int(строка, x), используя значение x как основание. Затем
суммируем два числа и добавляем результат в множество c. После перебора всех возможных пар (x, y)
количество различных значений выражения определяется как длина множества c и выводится с помощью
print(len(c)). Таким образом, мы получаем число уникальных значений суммы для всех допустимых x и
y.
# Определяем алфавит 16-ричной системы счисления alf = ’0123456789ABCDEF’ # Создаем пустое множество для хранения уникальных значений выражения c = set() # Перебираем все возможные значения x от 10 до 14 включительно for x in range(10, 15): # Для каждого x перебираем все значения y меньше x for y in range(x): # Формируем первое число $23xyB_{15}$ и переводим в десятичное число s1 = int(f’23{alf[x]}{alf[y]}B’, 15) # Формируем второе число $36y90x_{x}$ и переводим в десятичное число с основанием x s2 = int(f’36{alf[y]}90’, x) # Суммируем числа и добавляем в множество уникальных значений c.add(s1 + s2) # Выводим количество различных значений арифметического выражения print(len(c))
Ошибка.
Попробуйте повторить позже
При каком х сумма цифр в 17-ричной записи числа
будет максимальной (вместо x может стоять ровно одна цифра)?
В качестве ответа укажите максимальную сумму цифр получившегося числа
В условии нам дано выражение , в котором x — это одна неизвестная цифра из 13-ричной системы.
Наша задача — определить, какое значение x даст максимальную сумму цифр результата при переводе числа в
17-ричную систему, и найти эту максимальную сумму. Для решения мы заводим переменную max_sum = 0, которая
будет хранить наибольшую найденную сумму цифр. Затем перебираем все возможные значения x из 13-ричной
системы, используя цикл for x in "0123456789ABC". Внутри цикла мы сначала формируем число
, подставляя
текущее значение x, и с помощью функции int(строка, 13) переводим его в десятичное число. Далее вычисляем
значение всего выражения в десятичной системе как s = 17 ** 200 - int(...). После этого нужно найти сумму цифр
полученного числа в 17-ричной системе. Для этого заводим переменную sum_digits = 0 и используем цикл while s > 0, в
котором на каждом шаге добавляем к sum_digits остаток от деления числа на 17 – s % 17 (это последняя цифра
числа в 17-ричной системе), а затем убираем последнюю цифру делением s //= 17. После подсчета суммы
цифр для конкретного x сравниваем её с текущим max_sum и обновляем max_sum с помощью функции
max(max_sum, sum_digits). После перебора всех возможных значений x в переменной max_sum окажется
максимальная сумма цифр для числа
в 17-ричной системе, которую мы выводим через
print(max_sum).
# Переменная для хранения максимальной суммы цифр max_sum = 0 # Начальное значение суммы # Перебираем все возможные значения x в 13-ричной системе for x in "0123456789ABC": # Вычисляем значение выражения 17**200 - 365x2 в десятичной системе s = 17 ** 200 - int("365" + x + "2", 13) # Переменная для накопления суммы цифр числа в 17-ричной системе sum_digits = 0 # Считаем сумму цифр числа в 17-ричной системе while s > 0: sum_digits += s % 17 # Добавляем последнюю цифру числа к сумме s //= 17 # Убираем последнюю цифру числа # Обновляем максимальную сумму цифр, если текущая больше max_sum = max(max_sum, sum_digits) # Выводим максимальную сумму цифр print(max_sum)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 8.
В записи чисел переменной обозначена неизвестная цифра из алфавита 8-ричной системы счисления.
Определите наименьшее значение
, при котором значение данного арифметического выражения в десятичной
системе счисления кратно 102. Для найденного значения
вычислите частное от деления значения
арифметического выражения на 102 и укажите его в ответе. Основание системы счисления в ответе указывать не
нужно.
Решение программой:
В условии даны два числа и
в 8-ричной системе счисления, в которых переменная x может
принимать значения от 0 до 7. Наша цель — найти наименьшее значение x, при котором сумма этих
чисел в десятичной системе будет делиться на 102, и вычислить частное от деления суммы на 102. Для
решения мы сначала задаём строку digits = ’01234567’, содержащую все допустимые цифры 8-ричной
системы, и переменную ss = 8, которая указывает основание системы счисления. Далее мы перебираем все
возможные значения x с помощью цикла for x in digits:. Для каждого x формируем первое число как строку
’2537’ + x + ’11’ и переводим её в десятичную систему с помощью int(..., ss), получая переменную a.
Аналогично формируем второе число ’34’ + x + ’774’ + x и переводим его в десятичную систему, получая b.
После этого вычисляем сумму выражения s = a + b. Далее проверяем, делится ли s на 102, используя
условие if s % 102 == 0:. Поскольку нам нужно наименьшее значение x, при котором выполняется это
условие, мы сразу выводим частное от деления суммы на 102 через print(s // 102) и прерываем цикл с
помощью break, чтобы дальнейшие значения x не учитывались. Таким образом, первый найденный результат
соответствует наименьшему x, удовлетворяющему условию, и его частное от деления на 102 является ответом
задачи.
# Цифры 8-ричной системы счисления digits = "01234567" # Основание системы счисления ss = 8 # Перебираем все возможные значения x от 0 до 7 for x in digits: # Вычисляем первое число $2537x11_{8}$ в десятичной системе a = int("2537" + x + "11", ss) # Вычисляем второе число $34x774x_{8}$ в десятичной системе b = int("34" + x + "774" + x, ss) # Находим сумму чисел s = a + b # Проверяем, делится ли сумма на 102 if s % 102 == 0: # Если делится, выводим частное от деления суммы на 102 и прекращаем цикл print(s // 102) break
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 14.
В записи чисел переменной обозначена неизвестная цифра из алфавита 14-ричной системы счисления.
Определите наибольшее значение
, при котором значение данного арифметического выражения в десятичной системе
счисления кратно 5. Для найденного значения
вычислите частное от деления значения арифметического выражения
на 5 и укажите его в ответе. Основание системы счисления в ответе указывать не нужно.
Решение программой:
В условии даны два числа и
в 14-ричной системе счисления, в которых переменная x может
принимать значения от 0 до D включительно, соответствующие алфавиту ’0123456789ABCD’. Наша цель — найти
наибольшее значение x, при котором сумма этих чисел в десятичной системе делится на 5, и вычислить частное
от деления суммы на 5. Для этого мы сначала задаём строку a = ’0123456789ABCD’, содержащую все
допустимые цифры 14-ричной системы. Далее мы перебираем все возможные значения x с помощью
цикла for x in a:. Для каждого x формируем первое число как строку ’43’ + x + ’A6’ и переводим её в
десятичную систему с помощью int(..., 14), получая переменную a. Аналогично формируем второе число ’11C’ +
x + ’A9’ и переводим его в десятичную систему, получая b. После этого вычисляем сумму выражения
res = a + b. Далее проверяем, делится ли res на 5, используя условие if res % 5 == 0:. Поскольку нам
нужно наибольшее x, при котором выполняется это условие, мы выводим частное от деления суммы на 5
через print(res // 5). При этом цикл перебирает x в порядке увеличения, и мы можем убедиться, что
последнее найденное значение x и его частное соответствуют наибольшему допустимому x, удовлетворяющему
условию.
# Цифры 14-ричной системы счисления a = ’0123456789ABCD’ # Перебираем все возможные значения x от 0 до D for x in a: # Вычисляем первое число $43xA6_{14}$ в десятичной системе a = int(f’43{x}A6’, 14) # Вычисляем второе число $11CxA9_{14}$ в десятичной системе b = int(f’11C{x}A9’, 14) # Находим сумму чисел res = a + b # Проверяем, делится ли сумма на 5 if res % 5 == 0: # Если делится, выводим частное от деления суммы на 5 print(res // 5)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 111.
В записи чисел переменной обозначена неизвестная цифра из алфавита 111-ричной системы счисления.
Определите наибольшее значение
, при котором значение данного арифметического выражения в десятичной
системе счисления кратно 111. Для найденного значения
вычислите частное от деления значения
арифметического выражения на 111 и укажите его в ответе. Основание системы счисления в ответе указывать не
нужно.
Решение программой:
Даны два числа в 111-ричной системе счисления, содержащие переменную x, которая представляет собой цифру из
алфавита 111-ричной системы (т. е. x может принимать значения от 0 до 110). Переберем все возможные значения x (от
0 до 110), подставим их в числа и
, переведем эти числа в десятичную систему и вычислим сумму.
Затем проверим делится ли сумма на 111, если делится, то выведем x и частное (a + b) // 111. Останется только
выбрать из выведенных x максимальное (оно будет выведено последним) и записать в ответ соответствующее
частное.
# Перебираем все возможные значения x (от 0 до 110) for x in range(111): # Вычисляем первое число 190x23 в десятичной системе a = 1 * 111 ** 5 + 9 * 111 ** 4 + x * 111 ** 2 + 2 * 111 + 3 # Вычисляем второе число 43x98x в десятичной системе b = 4 * 111 ** 5 + 3 * 111 ** 4 + x * 111 ** 3 + 9 * 111 ** 2 + 8 * 111 + x res = a + b # Сумма чисел # Проверяем, делится ли сумма на 111 if res % 111 == 0: # Выводим x и частное от деления суммы на 111 print(x, res // 111)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 12.
В записи чисел переменной обозначена неизвестная цифра из алфавита 12-ричной системы счисления.
Определите наибольшее значение
, при котором значение данного арифметического выражения в десятичной
системе счисления кратно 689. Для найденного значения
вычислите частное от деления значения
арифметического выражения на 689 и укажите его в ответе. Основание системы счисления в ответе указывать не
нужно.
Решение программой:
В условии даны два числа и
в 12-ричной системе счисления, где x — неизвестная цифра из
алфавита ’0123456789AB’. Нам необходимо определить наибольшее значение x, при котором сумма этих чисел в
десятичной системе делится на 689, и вычислить частное от деления суммы на 689. Сначала мы задаём строку a =
’0123456789AB’, содержащую все допустимые цифры 12-ричной системы. Далее перебираем все возможные значения x с
помощью цикла for x in a:. Для каждого x формируем первое число ’AB’ + x + ’012’ и переводим его в десятичную
систему через int(..., 12), сохраняя в переменную a. Аналогично формируем второе число ’3’ + x + ’000’ и переводим его
в десятичную систему, сохраняя в b. Затем вычисляем сумму выражения res = a + b. После этого проверяем, делится
ли res на 689 с помощью условия if res % 689 == 0:. Если делится, выводим частное от деления суммы
на 689 через print(res // 689). Цикл перебирает x по возрастанию, поэтому последнее значение x, для
которого выполняется условие, соответствует наибольшему допустимому x, а выведенное частное — искомый
результат.
# Цифры 12-ричной системы счисления a = ’0123456789AB’ # Перебираем все возможные значения x от 0 до B for x in a: # Вычисляем первое число $ABx012_{12}$ в десятичной системе a = int(f’AB{x}012’, 12) # Вычисляем второе число $3x000_{12}$ в десятичной системе b = int(f’3{x}000’, 12) # Находим сумму чисел res = a + b # Проверяем, делится ли сумма на 689 if res % 689 == 0: # Если делится, выводим частное от деления суммы на 689 print(res // 689)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 16.
В записи чисел переменной обозначена неизвестная цифра из алфавита 16-ричной системы счисления.
Определите наибольшее значение
, при котором значение данного арифметического выражения в десятичной
системе счисления кратно 215. Для найденного значения
вычислите частное от деления значения
арифметического выражения на 215 и укажите его в ответе. Основание системы счисления в ответе указывать не
нужно.
Решение программой:
В условии даны два числа и
в 16-ричной системе счисления, где x — неизвестная цифра из
алфавита ’0123456789ABCDEF’. Нам необходимо определить наибольшее значение x, при котором сумма этих чисел в
десятичной системе делится на 215, и вычислить частное от деления суммы на 215. Сначала мы задаём строку a =
’0123456789ABCDEF’, содержащую все допустимые цифры 16-ричной системы. Далее перебираем все возможные
значения x с помощью цикла for x in a:. Для каждого x формируем первое число ’F’ + x + ’A01’ и переводим его в
десятичную систему через int(..., 16), сохраняя в переменную a. Аналогично формируем второе число ’D5’ + x + ’4E’ +
x и переводим его в десятичную систему, сохраняя в b. Затем вычисляем сумму выражения res = a + b. После этого
проверяем, делится ли res на 215 с помощью условия if res % 215 == 0:. Если делится, выводим частное от деления
суммы на 215 через print(res // 215). Цикл перебирает x по возрастанию, поэтому последнее значение x, для
которого выполняется условие, соответствует наибольшему допустимому x, а выведенное частное — искомый
результат.
# Цифры 16-ричной системы счисления a = ’0123456789ABCDEF’ # Перебираем все возможные значения x от 0 до F for x in a: # Вычисляем первое число $F{x}A01_{16}$ в десятичной системе a = int(f’F{x}A01’, 16) # Вычисляем второе число $D5x4Ex_{16}$ в десятичной системе b = int(f’D5{x}4E{x}’, 16) # Находим сумму чисел res = a + b # Проверяем, делится ли сумма на 215 if res % 215 == 0: # Если делится, выводим частное от деления суммы на 215 print(res // 215)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 17:
В записи чисел переменной x обозначена неизвестная цифра из алфавита 17-ричной системы счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 13. Для найденного значения x вычислите частное от деления значения арифметического выражения на 13 и укажите его в ответе в десятичной системе счисления.
Основание системы счисления указывать не нужно.
Решение программой:
В условии даны три числа ,
и
в 17-ричной системе счисления, где x — неизвестная
цифра из алфавита ’0123456789abcdefg’. Нам нужно определить наибольшее значение x, при котором сумма этих
чисел в десятичной системе делится на 13, и вычислить частное от деления суммы на 13. Сначала мы
создаём строку a = ’0123456789abcdefg’, которая содержит все возможные цифры 17-ричной системы.
Далее с помощью цикла for x in a: перебираем каждую цифру x. Для каждой x формируем первое число
’4’ + x + ’836b’ и преобразуем его в десятичную систему через int(..., 17), сохраняя в переменную s1.
Аналогично формируем второе число ’d67’ + x + ’8’ и третье число ’634’ + x + ’72’, переводим их в
десятичную систему, сохраняя в s2 и s3 соответственно. Затем находим сумму s = s1 + s2 + s3. После этого
проверяем, делится ли s на 13 с помощью условия if s % 13 == 0:. Если делится, выводим частное от деления
суммы на 13 через print(s // 13). Цикл перебирает x по возрастанию, поэтому последнее значение x, для
которого выполняется условие, соответствует наибольшему допустимому x, а выведенное частное — искомый
результат.
# Цифры 17-ричной системы счисления a = "0123456789abcdefg" # Перебираем все возможные значения x от 0 до g for x in a: # Вычисляем первое число $4{x}836B_{17}$ в десятичной системе s1 = int("4" + x + "836b", 17) # Вычисляем второе число $D67{x}8_{17}$ в десятичной системе s2 = int("d67" + x + "8", 17) # Вычисляем третье число $634{x}72_{17}$ в десятичной системе s3 = int("634" + x + "72", 17) # Находим сумму чисел s = s1 + s2 + s3 # Проверяем, делится ли сумма на 13 if s % 13 == 0: # Если делится, выводим частное от деления суммы на 13 print(s // 13)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 22:
В записи чисел переменной x обозначена неизвестная цифра из алфавита 22-ричной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 13. Для найденного значения x вычислите частное от деления значения арифметического выражения на 13 и укажите его в ответе в десятичной системе счисления.
Основание системы счисления указывать не нужно.
Решение программой:
В условии даны три числа ,
и
в 22-ричной системе счисления, где x —
неизвестная цифра из алфавита ’0123456789abcdefghijkl’. Нам нужно определить наименьшее значение x, при
котором сумма этих чисел в десятичной системе делится на 13, и вычислить частное от деления суммы на
13. Сначала мы создаём строку a = ’0123456789abcdefghijkl’, которая содержит все допустимые цифры
22-ричной системы. Далее с помощью цикла for x in a: перебираем каждую цифру x по возрастанию. Для
каждой x формируем первое число ’90F’ + x + ’1B’ и преобразуем его в десятичную систему через int(...,
22), сохраняя в переменную s1. Аналогично формируем второе число ’C273’ + x + ’0’ и третье число
’A23’ + x + ’62’, переводим их в десятичную систему, сохраняя в s2 и s3. Затем находим сумму s = s1 +
s2 + s3. После этого проверяем, делится ли s на 13 с помощью условия if s % 13 == 0:. Поскольку нас
интересует наименьшее x, при котором сумма делится на 13, при нахождении первого подходящего x мы
выводим частное от деления через print(s // 13) и сразу прерываем цикл с помощью break. Таким образом,
первый найденный x соответствует наименьшему допустимому значению, а выведенное частное — искомый
результат.
# Цифры 22-ричной системы счисления a = "0123456789abcdefghijkl" # Перебираем все возможные значения x от 0 до l for x in a: # Вычисляем первое число $90F{x}1B_{22}$ в десятичной системе s1 = int("90F" + x + "1B", 22) # Вычисляем второе число $C273{x}0_{22}$ в десятичной системе s2 = int("C273" + x + "0", 22) # Вычисляем третье число $A23{x}62_{22}$ в десятичной системе s3 = int("A23" + x + "62", 22) # Находим сумму чисел s = s1 + s2 + s3 # Проверяем, делится ли сумма на 13 if s % 13 == 0: # Если делится, выводим частное от деления суммы на 13 и прекращаем перебор print(s // 13) break
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 26:
В записи чисел переменной x обозначена неизвестная цифра из алфавита 26-ричной системы счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 17. Для найденного значения x вычислите частное от деления значения арифметического выражения на 17 и укажите его в ответе в десятичной системе счисления.
Основание системы счисления указывать не нужно.
Решение программой:
Решение: В условии даны три числа ,
и
в 26-ричной системе счисления, где
x — неизвестная цифра из алфавита ’0123456789abcdefghijklmnop’. Нам необходимо найти наибольшее
значение x, при котором сумма этих чисел в десятичной системе делится на 17, и вычислить частное
от деления суммы на 17. Сначала создаём строку a = ’0123456789abcdefghijklmnop’, которая содержит
все допустимые цифры 26-ричной системы. Далее перебираем все возможные значения x с помощью
цикла for x in a:. Для каждой x формируем первое число ’276’ + x + ’AD’ и переводим его в десятичную
систему через int(..., 26), сохраняя в переменную s1. Аналогично формируем второе число ’56’ + x +
’E790’ и третье число ’477’ + x + ’B7’, переводим их в десятичную систему и сохраняем в s2 и s3. Затем
вычисляем сумму s = s1 + s2 + s3. После этого проверяем, делится ли s на 17 с помощью условия if s
% 17 == 0:. Поскольку нам нужен наибольший x, перебор выполняется по возрастанию, и мы просто
выводим частное от деления через print(s // 17) для всех подходящих x; последний выведенный результат
будет соответствовать наибольшему x. Таким образом, получаем искомое частное от деления суммы на
17.
# Цифры 26-ричной системы счисления a = "0123456789abcdefghijklmnop" # Перебираем все возможные значения x от 0 до p for x in a: # Вычисляем первое число $276{x}AD_{26}$ в десятичной системе s1 = int("276" + x + "AD", 26) # Вычисляем второе число $56{x}E790_{26}$ в десятичной системе s2 = int("56" + x + "E790", 26) # Вычисляем третье число $477{x}B7_{26}$ в десятичной системе s3 = int("477" + x + "B7", 26) # Находим сумму чисел s = s1 + s2 + s3 # Проверяем, делится ли сумма на 17 if s % 17 == 0: # Если делится, выводим частное от деления суммы на 17 print(s // 17)
Ошибка.
Попробуйте повторить позже
Какая максимальная сумма цифр может получиться в семиричной записи числа
если вместо x, y и z может стоять ровно 1 цифра, x, y и z не могут быть одинаковыми.
Решение программой:
В условии даны три числа ,
и
, содержащие переменные x, y и z, каждая из
которых может принимать значения из соответствующего алфавита цифр своей системы счисления. Необходимо найти
комбинацию x, y и z, при которой сумма цифр результата выражения
в 7-ричной
системе максимально возможна, при этом все три переменные должны быть различны. Для начала мы создаём строку
digits = ’0123456789ABCDEFGHIJKL’, включающую все допустимые символы для систем счисления с
основаниями 12, 19 и 22, чтобы иметь возможность перебрать все варианты. Далее создаём переменную
max_sum = 0 для хранения текущей максимальной суммы цифр. Перебор возможных значений x, y и z
осуществляется через три вложенных цикла for x in digits[:12]:, for y in digits[:19]: и for z in digits[:12]:, так как
минимальные основания систем, содержащих эти переменные, равны 12 и 19 соответственно. Внутри этих циклов
мы проверяем уникальность выбранных цифр условием if len(x, y, z) == 3:. Если цифры различны, мы
формируем числа
,
и
в виде строк с подставленными значениями x, y и
z и преобразуем их в десятичные числа с помощью функции int(..., base). Далее вычисляем значение
выражения s = s1 - s2 + s3. Для получения суммы цифр в 7-ричной системе мы используем цикл while
s > 0:, в котором последовательно прибавляем к переменной sum_digits остаток от деления s на 7, а
затем делим s на 7 целочисленно. После вычисления суммы цифр обновляем максимальную сумму с
помощью max_sum = max(max_sum, sum_digits). После перебора всех возможных комбинаций x, y и z
выводим результат print(max_sum), который и является искомой максимальной суммой цифр в 7-ричной
записи.
# Все допустимые цифры для систем счисления 12, 19 и 22 digits = "0123456789ABCDEFGHIJKL" # Переменная для хранения максимальной суммы цифр max_sum = 0 # Перебор возможных значений x от 0 до B (так как минимальная система с x — 12) for x in digits[:12]: # Перебор возможных значений y от 0 до J (так как минимальная система с y — 19) for y in digits[:19]: # Перебор возможных значений z от 0 до B (так как минимальная система с z — 12) for z in digits[:12]: # Проверяем, что x, y и z различны if len({x, y, z}) == 3: # Преобразуем числа $1A1x89yJ_{22}$, $C5y91z1_{19}$ и $43z29xA_{12}$ в десятичную систему s1 = int(f"1A1{x}89{y}J", 22) s2 = int(f"C5{y}91{z}1", 19) s3 = int(f"43{z}29{x}A", 12) # Вычисляем значение выражения s = s1 - s2 + s3 # Вычисляем сумму цифр числа в 7-ричной системе sum_digits = 0 while s > 0: sum_digits += s % 7 # Прибавляем последнюю цифру числа в 7-ричной системе s //= 7 # Убираем последнюю цифру # Обновляем максимальную сумму цифр, если текущее значение больше max_sum = max(max_sum, sum_digits) # Выводим максимальную сумму цифр print(max_sum)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 14.
В записи чисел переменной обозначена неизвестная цифра из алфавита 14-ричной системы счисления.
Определите наименьшее значение
, при котором значение данного арифметического выражения кратно 10. Для
найденного
вычислите частное от деления значения арифметического выражения на 10 и укажите его в ответе в
десятичной системе счисления. Основание системы счисления указывать не нужно.
Даны три числа ,
и
, содержащие переменную x, которая может принимать значения из
алфавита 14-ричной системы счисления. Нам необходимо определить наименьшее значение x, при котором сумма этих
трёх чисел делится на 10, и затем вычислить частное от деления суммы на 10. Сначала мы создаём цикл for x in
’0123456789ABCD’:, чтобы перебрать все допустимые цифры 14-ричной системы. Для каждого значения x мы
формируем строки с подставленной цифрой x и переводим их в десятичные числа с помощью функции int(..., 14): a =
int(f’3AxD11’, 14), b = int(f’74xC8’, 14) и c = int(f’x8A63’, 14). После этого вычисляем сумму этих чисел и проверяем
условие делимости на 10 через if (a + b + c) % 10 == 0. Как только находим первое (то есть наименьшее) значение x,
удовлетворяющее условию, выводим частное от деления суммы на 10 с помощью print((a + b + c) //
10) и прерываем цикл через break, чтобы не проверять большие значения x, так как нам нужен именно
наименьший.
# Перебираем все допустимые цифры x в 14-ричной системе for x in ’0123456789ABCD’: # Преобразуем первое число $3AxD11_{14}$ в десятичную систему a = int(f’3A{x}D11’, 14) # Преобразуем второе число $74xC8_{14}$ в десятичную систему b = int(f’74{x}C8’, 14) # Преобразуем третье число $x8A63_{14}$ в десятичную систему c = int(f’{x}8A63’, 14) # Проверяем, делится ли сумма чисел на 10 if (a + b + c) % 10 == 0: # Если делится, выводим частное от деления суммы на 10 print((a + b + c) // 10) # Прерываем цикл, так как нужен наименьший x break
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 17.
В записи чисел переменной x обозначена неизвестная цифра из алфавита 17-ричной системы счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 11. Для найденного x вычислите частное от деления значения арифметического выражения на 11 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Решение программой:
Даны два числа и
, содержащие переменную x, которая может принимать значения из
алфавита 17-ричной системы счисления. Нам необходимо определить наибольшее значение x, при котором сумма этих
двух чисел делится на 11, и затем вычислить частное от деления суммы на 11. Сначала мы создаём цикл for x in
’0123456789ABCDEFG’:, чтобы последовательно перебрать все возможные значения x. Для каждого значения x мы
формируем строки с подставленной цифрой x и переводим их в десятичные числа с помощью функции int(..., 17): s1 =
int(’370’+x+’102’, 17) и s2 = int(’8’+x+’3719’, 17). После этого вычисляем сумму этих чисел s = s1 + s2 и проверяем
делимость на 11 через if s % 11 == 0. Как только находим значение x, удовлетворяющее условию, выводим x
и частное от деления суммы на 11 с помощью print(x, s // 11). Поскольку цикл перебирает значения
x от меньших к большим, наибольшее значение x, при котором сумма делится на 11, будет выведено
последним, что соответствует условию задачи. Таким образом, алгоритм последовательно перебирает
варианты x, конвертирует числа из 17-ричной системы в десятичную, проверяет делимость на 11 и выводит
результат.
# Перебираем все возможные цифры x в 17-ричной системе for x in ’0123456789ABCDEFG’: # Преобразуем первое число $370x102_{17}$ в десятичную систему s1 = int(’370’+x+’102’, 17) # Преобразуем второе число $8x3719_{17}$ в десятичную систему s2 = int(’8’+x+’3719’, 17) # Вычисляем сумму двух чисел s = s1 + s2 # Проверяем, делится ли сумма на 11 if s % 11 == 0: # Если делится, выводим текущее значение x и частное от деления суммы на 11 print(x, s // 11)