5.03 Действия над цифрами числа
Ошибка.
Попробуйте повторить позже
Автомат получает на вход пятизначное число. По этому числу строится новое число по таким правилам:
1. Складываются квадраты цифр, стоящих на нечетных позициях;
2. Складываются квадраты цифр, стоящих на четных позициях;
3. Затем в порядке возрастания записываются эти суммы.
Укажите наименьшее число, при вводе которого автомат выдает число 128243 .
Решение программой:
В этой задаче автомат получает пятизначное число и преобразует его в новое число, суммируя квадраты цифр на нечётных и чётных позициях, а затем соединяя эти суммы в порядке возрастания. Чтобы реализовать этот алгоритм на Python, мы начинаем с перебора всех пятизначных чисел от 10000 до 99999 включительно с помощью цикла for n in range(10000, 100000). Каждое число преобразуем в строку с помощью str(n), чтобы иметь возможность работать с отдельными цифрами через индексы: индекс 0 соответствует первой цифре, индекс 1 — второй, и так далее до индекса 4 для пятой цифры.
Далее мы отдельно вычисляем сумму квадратов цифр на нечётных позициях, беря квадраты цифр с индексами 0, 2 и 4, и сумму квадратов цифр на чётных позициях, используя квадраты цифр с индексами 1 и 3. После этого формируем итоговое число, соединяя меньшую сумму перед большей с помощью функций min(), max(), чтобы соблюсти порядок возрастания. Сформированное число преобразуем в целое с помощью int() и сравниваем с заданным числом 128243. Если текущее число даёт нужный результат и меньше уже найденного минимального, обновляем переменную min_n. После перебора всех пятизначных чисел переменная min_n содержит наименьшее число, подходящее под условие задачи.
# Инициализируем переменную для хранения наименьшего подходящего числа min_n = 99999 # Перебираем все пятизначные числа от 10000 до 99999 включительно for n in range(10000, 100000): # Преобразуем число в строку для удобного обращения к цифрам по индексам s = str(n) # Вычисляем сумму квадратов цифр на нечётных позициях (индексы 0, 2, 4) a = int(s[0])**2 + int(s[2])**2 + int(s[4])**2 # Вычисляем сумму квадратов цифр на чётных позициях (индексы 1, 3) b = int(s[1])**2 + int(s[3])**2 # Формируем результат, соединяя меньшую сумму перед большей, чтобы соблюсти порядок возрастания r = int(str(min(a, b)) + str(max(a, b))) # Проверяем, совпадает ли результат с заданным числом 128243 и меньше ли текущее число уже найденного минимального if r == 128243 and n < min_n: # Обновляем переменную min_n, если найдено меньшее подходящее число min_n = n # Выводим найденное наименьшее число print(min_n)
Решение руками:
Сумма квадратов 3 чисел принадлежит промежутку [0,243], а сумма квадратов 2 чисел промежутку [0,162]. В соответствие с этими правилами число разбивается на число 128 и 243. Раскладывая данные числа на суммы квадратов, получаем набор цифр для исходного числа {8,8,9,9,9}, при этом цифры {8,8} находятся на четных позициях, а цифры {9,9,9} на нечетных. Тогда минимальное число есть 98989.
Специальные программы

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

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

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

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

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

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