
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



Давайте разберемся с этой задачей шаг за шагом.
Начнем с поиска всех целых чисел в заданном диапазоне [3712; 8432], удовлетворяющих условиям:
- Запись в двоичной и четверичной системах счисления заканчивается одинаковой цифрой.
- Кратны, по крайней мере, одному из чисел: 13, 14 или 15.
Найдем количество таких чисел и минимальное из них.
Вот Python-код, который решает эту задачу:
pythondef has_same_last_digit_in_binary_and_quaternary(num):
binary = bin(num)[2:]
quaternary = oct(num)[2:]
return binary[-1] == quaternary[-1]
def is_multiple_of_13_14_or_15(num):
return num % 13 == 0 or num % 14 == 0 or num % 15 == 0
min_number = 8432 # Максимальное значение в диапазоне
max_number = 3712 # Минимальное значение в диапазоне
# Инициализируем минимальное число значением, которое не подходит под условия
min_valid_number = None
# Инициализируем счетчик
count = 0
# Перебираем числа в обратном порядке
for num in range(min_number, max_number - 1, -1):
if has_same_last_digit_in_binary_and_quaternary(num) and is_multiple_of_13_14_or_15(num):
count += 1
if min_valid_number is None:
min_valid_number = num
print(f"Количество подходящих чисел: {count}")
print(f"Минимальное подходящее число: {min_valid_number}")
Этот код начинает с максимального числа в диапазоне и идет в обратном порядке. Он проверяет, соответствует ли число условиям, и увеличивает счетчик, если да. Когда первое подходящее число найдено, оно становится минимальным подходящим числом. После завершения цикла, программа выводит количество подходящих чисел и минимальное из них.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili