5.03 Действия над цифрами числа
Ошибка.
Попробуйте повторить позже
Автомат получает на вход пятизначное число. По этому числу строится новое число по таким правилам:
1. Складываются квадраты цифр, стоящих на нечетных позициях;
2. Складываются квадраты цифр, стоящих на четных позициях;
3. Затем в порядке возрастания записываются эти суммы.
Укажите наименьшее число, при вводе которого автомат выдает число 72128.
Решение программой
В этой задаче мы имеем автомат, который получает пятизначное число и строит новое число на основе суммы квадратов цифр на нечётных и чётных позициях, а затем соединяет эти суммы в порядке возрастания. Для реализации этого алгоритма на Python мы создаём отдельную функцию calculate_sum(num), которая принимает число num и возвращает две суммы: квадратов цифр на нечётных позициях и квадратов цифр на чётных позициях. Внутри функции мы инициализируем переменные odd_sum и even_sum, затем с помощью цикла for i in range(5) обрабатываем каждую цифру числа. Цифру получаем остатком от деления на 10 (digit = num
После создания функции мы организуем перебор всех пятизначных чисел от 10000 до 99999 включительно через цикл for num in range(10000, 100000). Для каждого числа вызываем функцию calculate_sum(num), получаем суммы квадратов цифр на нечётных и чётных позициях и проверяем, совпадают ли они с требуемыми значениями для формирования числа 72128, учитывая, что меньшая сумма должна стоять первой. Если условие выполняется, выводим текущее число и прерываем цикл, так как нас интересует наименьшее подходящее число.
# Функция для вычисления суммы квадратов цифр на нечётных и чётных позициях def calculate_sum(num): # Инициализируем суммы для нечётных и чётных позиций odd_sum = 0 even_sum = 0 # Обрабатываем каждую из 5 цифр числа for i in range(5): # Получаем последнюю цифру числа digit = num % 10 # Определяем, к какой сумме относится цифра: чётная или нечётная позиция if i % 2 == 0: even_sum += digit ** 2 # Чётные позиции else: odd_sum += digit ** 2 # Нечётные позиции # Убираем последнюю цифру числа для обработки следующей num //= 10 # Возвращаем обе суммы return odd_sum, even_sum # Перебираем все пятизначные числа for num in range(10000, 100000): # Получаем суммы квадратов цифр на нечётных и чётных позициях odd_sum, even_sum = calculate_sum(num) # Проверяем, совпадают ли суммы с заданным числом 72128 if (odd_sum == 72 and even_sum == 128) or (odd_sum == 128 and even_sum == 72): # Выводим найденное число print(num) # Прерываем цикл, так как нам нужно наименьшее число break
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!