27) (А. Куканова) Рассматривается множество целых чисел, принадлежащих числовому отрезку [3712; 8432], которые удовлетворяют следующим условиям:
− запись в двоичной и четверичной системах счисления заканчивается одинаковой цифрой;
− кратны, по крайней мере, одному из чисел: 13, 14 или 15.
Найдите количество таких чисел и минимальное из них. Нужно на питоне
Ответы
Программа:
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