Предмет: Информатика, автор: ladaoolakaj9831

27) (А. Куканова) Рассматривается множество целых чисел, принадлежащих числовому отрезку [3712; 8432], которые удовлетворяют следующим условиям:

− запись в двоичной и четверичной системах счисления заканчивается одинаковой цифрой;

− кратны, по крайней мере, одному из чисел: 13, 14 или 15.

Найдите количество таких чисел и минимальное из них. Нужно на питоне

Ответы

Автор ответа: vimmortal2
0

Программа:

Python:

def translate(num, base):

 out = ""

 while num > 0:

    out = str(num % base) + out

    num //= base

 return int(out)

if __name__ == '__main__':

 count, minimum, can = 0, 0, True

 for i in range(3712, 8432 + 1):

    if (translate(i, 2) % 10) == (translate(i, 4) % 10):

       if i % 13 == 0 or i % 14 == 0 or i % 15 == 0:

          count += 1

          if can:

             minimum = i

             can = False

print(f'Таких чисел: {count}\nМинимальное число: {minimum}')

Объяснение:

Регистрируем функцию translate, которая будет переводить числа в различные системы счисления (от 2 до 9 включительно, но этих рамок хватает). С помощью условия if __name__ == "__main__" выполняем основной код. Регистрируем переменные для будущего использования, с помощью цикла проходимся по всем целым числам от 3712 до 8432 (включительно). Теперь по условию делаем две проверки: если при переводе в 2-ю СС остаток деления на 10 (это же и последнее число) равен остатку деления на 10 переведённого числа в 4-й СС (это же и последнее число), то увеличиваем значение count на единицу. И находим минимальное число путём введения новой переменной can: в начале мы записали True, но если изменится на False, то минимальному числу присвоится текущее значение i, переменная can стаёт False. В конце - вывод значений, необходимых по условию.


Результат:

Таких чисел: 471      

Минимальное число: 3720

Похожие вопросы