Форум » Циклы и ветвления » 5236 » Ответить

5236

Борис Крыш: Известно, что при вводе некоторого x программа первым вывела число 84 000 000. Укажите наибольшее возможное значение числа, выведенного вторым. x = int(input()) a = 1; b = 0 while x > 0: ___ d = x % 10 ___ a *= d ___ if d > 2: ___ ___b += d ___ x //= 10 print(a, b) Решение: Первым выводится переменная а, изначально а=1, но её умножают на d = x % 10, после производят целочисленное деление x на 10, и цикл повторяется, пока x>10. Но тогда выходит, что d каждый раз принимает значение младшего разряда десятичной записи числа x. Тогда, что бы вывелоссь число 84 000 000, нужно что бы число x содержало в своей записи все цифры-делители числа 84 000 000, вот их список: 7; 5^6; 3; 2^8. А число b - сумма этих цифр, но только тех, которые больше двух, тогда 2^8 представим как 8^2*4. Считаем: 7+5*6+3+8*2+4=60, а в ответе 59. Это решение подтверждает программа, если запустить её и ввести в значение x набор из этих цифр, например: 88435555557

Ответов - 1

Поляков: Спасибо. Вы абсолютно правы. Ответ исправлен.



полная версия страницы