Автор | Сообщение |
|
Отправлено: 24.08.22 14:18. Заголовок: 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
[только новые]
|
|
|
| Администратор
|
Сообщение: 3677
|
|
Отправлено: 30.08.22 19:43. Заголовок: Спасибо. Вы абсолютн..
Спасибо. Вы абсолютно правы. Ответ исправлен.
|
|
|