5.03 Действия над цифрами числа
Ошибка.
Попробуйте повторить позже
Автомат получает на вход пятизначное число. По этому числу строится новое число по таким правилам:
1. Складываются квадраты цифр, стоящих на нечетных позициях;
2. Складываются квадраты цифр, стоящих на четных позициях;
3. Затем в порядке возрастания записываются эти суммы.
Укажите наибольшее число, при вводе которого автомат выдает число 4949.
Решение программой:
В этой задаче автомат преобразует пятизначное число в новое число на основе сумм квадратов цифр на нечётных и чётных позициях. Чтобы перенести этот алгоритм на Python, мы начинаем с перебора всех пятизначных чисел от 10000 до 99999 с помощью цикла for. Для каждого числа мы превращаем его в строку через str(n), чтобы можно было работать с отдельными цифрами по индексам. После этого мы вычисляем сумму квадратов цифр на чётных позициях (индексы 0, 2, 4) и сохраняем результат в переменную a. Сумму квадратов цифр на нечётных позициях (индексы 1, 3) сохраняем в переменную b. Для возведения цифры в квадрат мы используем конструкцию int(s[j])**2, сначала преобразуя символ строки в число, а затем возводя его в квадрат.
Далее мы формируем новое число, которое выдаёт автомат, объединяя меньшую и большую из этих сумм в порядке возрастания с помощью str(min(a, b)) + str(max(a, b)) и преобразуя результат в число через int(...). Проверяем, совпадает ли полученное число с требуемым значением 4949. Так как нам нужно найти наибольшее число, которое даёт этот результат, мы используем переменную max_n для хранения текущего максимального значения и обновляем её при каждом совпадении. В конце цикла выводим наибольшее число, удовлетворяющее условию.
# Инициализация переменной для хранения наибольшего числа, дающего нужный результат max_n = 10000 # Перебор всех пятизначных чисел от 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))) # Проверяем, совпадает ли получившееся число с требуемым if r == 4949 and n > max_n: # Если да, обновляем текущее максимальное число max_n = n # Выводим наибольшее число, которое даёт результат 4949 print(max_n)
Решение руками:
Сумма квадратов 3 чисел принадлежит промежутку [0,243], а сумма квадратов 2 чисел промежутку [0,162]. В соответствие с этими правилами число разбивается на число 49 и 49. Раскладывая данные числа на суммы квадратов, получаем набор цифр для исходного числа {0,0,0,7,7}, при этом цифры {0,7} находятся на четных позициях, и цифры {0,0,7} на нечетных. Тогда максимальное число есть 77000.
Специальные программы

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

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

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

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

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

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