Укажите наибольшее десятичное число, при вводе которого на экране сначала напечатается , а затем
.
Решение 1
Определимся, что подсчитывает каждая из переменных.
— считает количество цифр в числе в восьмеричной системе счисления (т.к. в конце цикла делим нацело на 8),
— сумма четных цифр числа в восьмеричной системе счисления.
По условию необходимо найти такое четырехзначное восьмеричное число, у которого сумма четных чисел равна 10, и при этом оно максимально.
Так как сумма четных цифр должна быть равна 10, представим . Для получения максимального числа поставим 64 в конец числа, а на первые два места поставим два максимальных нечетных числа в восьмеричной сс, т.е. семерки.
Осталось перевести ответ в десятичную сс:
Решение 2
for i in range(1000000):
x = i
l, m = 0, 0
while x > 0:
l += 1
if (x % 2) == 0:
m += x % 8
x //= 8
if l == 4 and m == 10:
print(i)