Задача к ЕГЭ по информатике на тему «арифметические выражения» №3

Сколько цифр, отличных от нуля, в восьмеричной записи числа 2100 + 248 + 232 + 213 + 27 + 2 + 1  ?

Решение Python:

a = int(oct(2**100 + 2**48 + 2**32 + 2**13 + 2**7 + 2 + 1)[2:])
c = 0
while a > 0:
    if a % 10 != 0:
        c += 1
    a //= 10
print(c)

Решение руками:

Переведём данную сумму в удобную форму для основания 8 нашей системы счисления:

 100    48    32    13    7 2   + 2  +  2  + 2  +  2 + 2 + 1

2 ⋅ 299 + 248 + 4 ⋅ 230 + 2 ⋅ 212 + 2 ⋅ 26 + 3

2 ⋅ (23)33 + (23)16 + 4 ⋅ (23)10 + 2 ⋅ (23)4 + 2 ⋅ (23)2 + 3 ⋅ (23)0

   33       16      10      4       2       0 2 ⋅ 8 + 1 ⋅ 8 + 4 ⋅ 8 +  2 ⋅ 8 + 2 ⋅ 8 + 3 ⋅ 8

Соответственно, число имеет вид 200..010..040..0202038   , где 3 стоит в первом разряде, 2 стоит в третьем разряде, 2 стоит в пятом разряде, 4 стоит в 11 разряде, 1 стоит в 17 разряде, 2 стоит в 34 разряде. Таким образом, ровно 6 цифр отличны от нуля в восьмеричной записи данного числа.

Ответ: 6
Оцените статью
Я решу все!