Задание включает в себя четыре типа (навигация):

  1. Значение выражения записали в n-ой системе счисления. Сколько n содержится в этой записи?

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

  3. Операнды арифметического выражения записаны в системах счисления с основаниями n и m. Определите значения x и y, при которых значение данного выражения будет наименьшим и кратно k. Для найденных значений x и y вычислите частное от деления.

  4. В системе счисления с основанием n выполняется равенство. Буквами x и y обозначены некоторые цифры из алфавита системы счисления с основанием n. Определите значение числа xyy_n и запишите это значение в десятичной системе счисления.

    n , m, k - какое-либо число .

Функция для перевода числа в любую систему счисления:

Untitled

Объяснение функции:

  1. def my_convert(number: int, system: int) -> str: - объявление функции my_convert, которая принимает два аргумента: number (число, которое нужно конвертировать) и system (система счисления, в которую нужно выполнить конвертацию). Функция возвращает строку.
  2. alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM') - создается переменная alphabet, которая содержит символы, используемые для представления чисел в различных системах счисления. Они отсортированы по порядку, чтобы обеспечить правильный порядок при конвертации.
  3. result = '' - переменная, в которой будет храниться результат конвертации. Изначально она пустая.
  4. while number > 0: - начало цикла while, который будет выполняться до тех пор, пока значение number больше нуля.
  5. result += alphabet[number % system] - добавляется символ к result, который соответствует остатку от деления number на system. Это позволяет выяснить, какой символ нужно использовать для представления остатка.
  6. number //= system - операция целочисленного деления number на system. Она уменьшает значение number, переводя его к меньшему разряду в соответствии с выбранной системой счисления.
  7. return result[::-1] - возвращается результат конвертации. Однако, поскольку символы были добавлены в обратном порядке (с меньшего разряда к большему), строка result разворачивается при помощи среза [::-1], чтобы получить правильный порядок символов.
def my_convert(number: int, system: int) -> str:
    alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
    result = ''
    while number > 0:
        result += alphabet[number % system]
        number //= system
    return result[::-1]

alphabet можно собрать другим способом:

from string import *
alphabet = digits + ascii_uppercase

Решение первого типа:

Решение второго типа: