Тема 14. Системы счисления

14.01 Арифметические выражения

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела системы счисления
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#5443Максимум баллов за задание: 1

Сколько цифр, отличных от нуля, в четверичной записи числа 243 + 214 + 2  ?

Показать ответ и решение

Решение Python:

Для подсчёта количества цифр, отличных от нуля, в 4-ричной записи числа необходимо написать алгоритм перевода исходного числа в 4-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую.

Для итогового подсчета количества цифр, отличных от нуля, будем «отсекать» по одной цифре путем нахождения остатка при делении на 10 и проверять, что она не равна 0.

# Исходное выражение
a = 2**43 + 2**14 + 2
# Строка для хранения результата перевода
s = ’’
# Перевод числа из десятичной системы в четверичную
while a > 0:
# Получаем последнюю цифру в 4-ичной системе и добавляем её в начало строки
    s = str(a % 4) + s
# Отбрасываем последнюю цифру (целочисленное деление на 4)
    a //= 4
# Перевод числа из строки в целое число
s1 = int(s)
count = 0
# Подсчет количества цифр, отличных от нули
while s1 > 0:
    if s1 % 10 != 0: # Проверяем последнюю цифру числа
        count += 1 # Увеличиваем счетчик, если цифра не ноль
    s1 //= 10 # Убираем последнюю цифру числа
# Вывод количества ненулевых цифр в 4-ичном представлении числа
print(count)

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

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

243 + 214 + 2

21 ⋅ 242 + 22⋅7 + 2

    2⋅21     27
2 ⋅ 2  +  (2 )  + 2

    2 21    7
2 ⋅ (2 ) + 4 + 2

2 ⋅ 421 + 1 ⋅ 47 + 2 ⋅ 40

Соответственно, число имеет вид 200..010..024   , где 2 стоит в первом разряде, 1 стоит в восьмом разряде, и 2 стоит в 22 разряде. Таким образом, ровно три цифры отличны от нуля в четверичной записи данного числа.

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 2#5812Максимум баллов за задание: 1

Сколько четверок содержится в пятеричной записи числа 514 + 253 − 117?

 

Показать ответ и решение

Решение программой

Для подсчёта количества цифр 4 в пятеричной записи числа необходимо перевести исходное число в пятеричную систему счисления. Реализуем стандартный алгоритм перевода числа из десятичной системы в пятеричную, а затем подсчитаем количество четвёрок в полученной записи, например, методом count().

# Функция для перевода числа x из 10СС в 5СС
def transfer_to_5(x):
# Создаем пустую строку, в которую будем записывать цифры числа в пятеричной системе
    s = ’’
# Продолжаем цикл, пока число не станет равным 0
    while x != 0:
# Получаем последнюю цифру (остаток от деления на 5) и добавляем её в начало строки
        s = str(x % 5) + s
# Делим число нацело на 5, чтобы перейти к следующему разряду
        x //= 5
# Возвращаем полученную пятеричную запись числа в виде строки
    return s

# Вычисляем исходное выражение: 5̂14 + 25̂3 - 117,
# переводим результат в пятеричную систему
# и подсчитываем количество цифр ’4’ в записи
print(transfer_to_5(5**14 + 25**3 - 117).count(’4’))

Решение аналитически

Для начала стоить отметить, что любое десятичное число A в n-ой степени можно записать как единицу и n нулей в системе счисления с основанием A:           --n--
An   = 1 ◜00◞.◟..00◝0
  10            A
Так как нас просят узнать количество четверок в пятеричной системе, представим все числа как степени пятерки, а 117, поскольку оно не является степенью пятерки, переведем в пятеричную систему счисления, получим:
514 + 253 − 117 = 514 + (52)3 − (4 ⋅ 52 + 3 ⋅ 51 + 2 ⋅ 50) = 514 + 56 − 432.
Для начала выполним сложение:

 +  10...000..000
--------1000000---
  1 0◟..◝.◜0◞1000000
     7

Вычтем из полученного 432:

         ⋅44444 5
 − 10...01000000
             432
-------------------
    10◟.◝.◜.0◞ 444013
       8

Примечание: при вычитании в недесятичной системе счисления, мы занимаем не “десяток”, а само основание системы счисления. В данном примере из второй единицы(она стоит в 6 разряде) мы занимаем пять в соседний разряд, и затем из полученной “пятерки” занимаем в следующий разряд, таким образом продолжая до последней цифры.

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 3#6181Максимум баллов за задание: 1

Сколько четверок содержится в пятеричной записи числа 2520 + 515 − 1253   ?

Показать ответ и решение

Решение программой

Для подсчёта количества четверок в 5-ричной записи числа необходимо написать алгоритм перевода исходного числа в 5-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую.

# Исходное выражение
a = 25**20 + 5**15 - 125**3

# Переменная для хранения числа в 5-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 5-ричную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 5) и добавляем её в начало строки
    s = str(a % 5) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 5)
    a //= 5

# Подсчёт и вывод количества цифр ’4’ в 5-ричной записи числа
print(s.count(’4’))

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

Приведем к общему основанию:

540 + 515 − 59

Переведем в пятиричную систему счисления и получим:

1000...000 +1 000...000− 1 000...000
 ◟--◝◜---◞   ◟---◝◜--◞    ◟--◝◜--◞
     40           15          9

          10◟00.◝.◜.000◞001 0◟00.◝..◜000◞
        -      22           15
                      1 0◟00.◝..◜000◞
----------------------------9------
  10◟00.◝.◜.000◞0004444440  0◟00.◝..◜000◞
       22                    8
Ответ: 6

Ошибка.
Попробуйте повторить позже

Задача 4#6182Максимум баллов за задание: 1

Сколько пятерок содержится в шестеричной записи числа 62020 + 3634 − 21612   ?

Показать ответ и решение

Решение программой

Для подсчёта количества пятёрок в 6-ричной записи числа необходимо написать алгоритм перевода исходного числа в 6-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую.

# Исходное выражение
a = 6**2020 + 36**34 - 216**12

# Переменная для хранения числа в 6-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 6-ричную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 6) и добавляем её в начало строки
    s = str(a % 6) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 6)
    a //= 6

# Подсчёт и вывод количества цифр ’5’ в 6-ричной записи числа
print(s.count(’5’))

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

Приведем к общему основанию:

62020 + 668 − 636

Переведем в шестиричную систему счисления и получим:

10◟00.◝.◜.000◞+1 0◟00..◝.◜000◞− 1 0◟00.◝..◜000◞
    2020          68          36

              10◟00..◝.◜000◞01 0◟00.◝.◜.000◞
                  1950         68
            -             1000...000
---------------------------◟--◝◜36---◞--
  1 000...000 00555...55500 000...000
    ◟--◝◜--◞   ◟---◝◜--◞   ◟--◝◜---◞
       1950         32          36
Ответ: 32

Ошибка.
Попробуйте повторить позже

Задача 5#6183Максимум баллов за задание: 1

Сколько значащих нулей содержится в троичной записи числа 9215 + 2765 − 814   ?

Показать ответ и решение

Решение программой

Для подсчёта количества нулей в троичной записи числа необходимо написать алгоритм перевода исходного числа в троичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую.

# Исходное выражение
a = 9**215 + 27**65 - 81**4

# Переменная для хранения числа в 3-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 3-ричную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 3) и добавляем её в начало строки
    s = str(a % 3) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 3)
    a //= 3

# Подсчёт и вывод количества цифр ’0’ в 3-ричной записи числа
print(s.count(’0’))

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

Приведем к общему основанию:

3430 + 3195 − 316

Переведем в троичную систему счисления и получим:

1000...000 +1 000...000− 1 000...000
 ◟--◝◜---◞   ◟---◝◜--◞    ◟--◝◜--◞
    430         195          16

         1 0◟00.◝.◜.000◞10◟00..◝.◜000◞
        -     234       195
                    10◟00..◝.◜000◞
-------------------------16-----
  1 0◟00..◝.◜000◞2◟22..◝.◜222◞0◟00..◝.◜000◞
       235       179       16
Ответ: 251

Ошибка.
Попробуйте повторить позже

Задача 6#6184Максимум баллов за задание: 1

Значение арифметического выражения:

96 + 818 − 32

— записали в системе счисления с основанием 9. Сколько значащих цифр «0» содержится в этой записи?

Показать ответ и решение

Решение программой

Для подсчёта количества нулей в 9-ричной записи числа необходимо написать алгоритм перевода исходного числа в 9-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом можно подчитать количество нулей при помощи метода count().

# Исходное выражение
a = 9**6 + 81**8 - 32

# Переменная для хранения числа в 9-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 9-ричную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 9) и добавляем её в начало строки
    s = str(a % 9) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 9)
    a //= 9

# Подсчёт и вывод количества цифр ’0’ в 9-ричной записи числа
print(s.count(’0’))

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

Приведем к общему основанию:

916 + 96 − 32

Переведем в девятиричную систему счисления и получим:

1000...000 +1000000  − 35
 ◟--◝◜---◞
     16

  1 0◟00.◝..◜000◞ 1000000
 -      9
------------------35---
  1 000...000 0888854
    ◟  ◝◜9  ◞
Ответ: 10

Ошибка.
Попробуйте повторить позже

Задача 7#6185Максимум баллов за задание: 1

Сколько значащих нулей содержится в записи числа в системе счисления равной 15: F19 + F9 − 322  ?

Показать ответ и решение

Решение программой

Для подсчёта количества нулей в 15-ричной записи числа необходимо написать алгоритм перевода исходного числа в 15-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Однако важно учесть, что в 15-ричной системе счисления в том числе используются цифры A (10 в десятичной) и B (11 в десятичной). Чтобы при подсчёте цифра 10 не интерпретировалась как 1 и 0, будем сохранять каждую полученную цифру в отдельной ячейке массива.

# Исходное выражение
s = 15**19 + 15**9 - 322
# Список для хранения цифр числа в 15-ричной системе
r = []
# Перевод числа из десятичной системы в 15-ричную
while s > 0:
    # Получаем последнюю цифру (остаток от деления на 15)
    r.append(s % 15)
    # Отбрасываем последнюю цифру (целочисленное деление на 15)
    s = s // 15

# Подсчёт и вывод количества нулей в 15-ричной записи числа
print(r.count(0))

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

Переведем в систему счисления равную 15 и получим:

10◟00.◝.◜.000◞+1 0◟00..◝.◜000◞− 167
     19           9

       10000000001000000000
--------------------------167---
  10000000000EEEEEED88
Ответ: 10

Ошибка.
Попробуйте повторить позже

Задача 8#6186Максимум баллов за задание: 1

Сколько значащих ’F  ’ содержится в записи числа в системе счисления равной 16  : 166 + 1613 − 289  ?

Показать ответ и решение

Решение программой

Для подсчёта количества цифр F (15 в десятичной) в 16-ричной записи числа необходимо написать алгоритм перевода исходного числа в 16-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Однако важно учесть, что в 16-ричной системе счисления в том числе используются цифры A (10 в десятичной) и B (11 в десятичной). Чтобы подчитывать такие цифры отдельно, будем сохранять каждую полученную цифру в отдельной ячейке массива.

# Исходное выражение
s = 16**6 + 16**13 - 289
# Список для хранения цифр числа в 16-ричной системе
r = []
# Перевод числа из десятичной системы в 16-ричную
while s > 0:
    # Получаем последнюю цифру (остаток от деления на 16)
    r.append(s % 16)
    # Отбрасываем последнюю цифру (целочисленное деление на 16)
    s = s // 16

# Подсчёт и вывод количества цифр F в 16-ричной записи числа
print(r.count(15))

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

Переведем в систему счисления равную 16 и получим:

10◟00.◝.◜.000◞+1 0◟00..◝.◜000◞− 121
     13           6

      10000001000000
------------------121---
  10000000F  F FEDF

Получаем, что количество F  равно 4.

Ответ: 4

Ошибка.
Попробуйте повторить позже

Задача 9#6187Максимум баллов за задание: 1

Сколько цифр 8 содержится в записи числа в системе счисления равной 9: 99 + 924 − 8582  ?

Показать ответ и решение

Решение программой

Для подсчёта количества восмёрок в 9-ричной записи числа необходимо написать алгоритм перевода исходного числа в 9-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подчитаем количество цифр 8 при помощи метода count().

# Исходное выражение
a = 9**9 + 9**24 - 8582

# Переменная для хранения числа в 9-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 9-ричную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 9) и добавляем её в начало строки
    s = str(a % 9) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 9)
    a //= 9

# Подсчёт и вывод количества цифр ’8’ в 9-ричной записи числа
print(s.count(’8’))

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

Переведем в систему счисления равную 9 и получим:

10◟00.◝.◜.000◞+1 0◟00..◝.◜000◞− 12685
     24           9

   1000...00001000000000
 -  ◟ --◝◜--◞
        13
--------------------12685---
   10◟00..◝.◜000◞00888876204
        13
Ответ: 4

Ошибка.
Попробуйте повторить позже

Задача 10#6343Максимум баллов за задание: 1

Сколько пятерок содержится в шестеричной записи числа 6120 + 363 − 160  ?

Показать ответ и решение

Решение программой

Для подсчёта количества цифр 5 в 6-ричной записи числа необходимо написать алгоритм перевода исходного числа в 6-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество цифр 5 при помощи метода count().

# Исходное выражение
a = 6**120 + 36**3 - 160

# Переменная для хранения числа в 6-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 6-ричную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 6) и добавляем её в начало строки
    s = str(a % 6) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 6)
    a //= 6

# Подсчёт и вывод количества цифр ’5’ в 6-ричной записи числа
print(s.count(’5’))

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

Для начала стоит отметить, что любое число А в n-ой степени можно записать как единицу и n нулей в системе счисления с основанием A:            n
        ◜-◞◟--◝
An10 = 1 00..000 A

Так как нас просят узнать количество пятерок в шестеричной системе, представим все числа как степени шестерки. Также переведём 160 в шестеричную систему счисления, из чего получим:

 120     3          120     23        2       1        0    120    6
6   + 36  − 160 = 6   +  (6 ) + (4 ∗ 6 + 2 ∗ 6 + 4 ∗ 6 ) = 6  +  6 −  424

Выполним сложение:

    10...0000000
 +      1000000
------------------
  1 0◟.◝.◜.◞1000000
    113

Вычтем из полученного 424:

          .555 556
 −  1◟0.◝..◜◞10000 00
      113
--------------424---
     1 0◟..◝.◜0◞555132
       114

В записи 3 пятёрки.

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 11#6353Максимум баллов за задание: 1

Сколько двоек в троичной записи числа 315 + 93 + 812 + 17?

Показать ответ и решение

Решение программой

Для подсчёта количества двоек в троичной записи числа необходимо написать алгоритм перевода исходного числа в троичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подчитаем количество двоек при помощи метода count().

# Исходное выражение
a = 3**15 + 9**3 + 81**2 + 17

# Переменная для хранения числа в 3-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 3-ричную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 3) и добавляем её в начало строки
    s = str(a % 3) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 3)
    a //= 3

# Подсчёт и вывод количества цифр ’2’ в 3-ричной записи числа
print(s.count(’2’))

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

Для начала стоить отметить, что любое десятичное число A в n-ой степени можно записать как единицу и n нулей в системе счисления с основанием A:            n
        ◜-◞◟--◝
An10 = 1 00...000 .
           A

Так как нас просят узнать количество двоек в троичной системе, представим все числа как степени тройки, а 17, поскольку оно не является степенью тройки, перевдем в троичную систему счисления, получим:

1710 = 32 + 2 ⋅ 3 + 2 = 1223

Тогда наше выражение имеет вид: 315 + 39 + 38 + 1223.

Так как 315,39,38   – это единицы с некоторым количеством нулей, при их сложении получится число, у которого в конце более трёх нулей, значит, при сложении с 1223   в итоговом числе будет две двойки.

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 12#6357Максимум баллов за задание: 1

Сколько значащих цифр C  содержится в записи числа, данного ниже, в системе счисления с основанием 13  ?

  14     35
13  + 13   − 547
Показать ответ и решение

Решение программой

Для подсчёта количества цифр C (12 в десятичной) в 13-ричной записи числа необходимо написать алгоритм перевода исходного числа в 13-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Однако важно учесть, что в 13-ричной системе счисления в том числе используются цифры A (10 в десятичной) и B (11 в десятичной), поэтому будем сохранять каждую полученную цифру в отдельной ячейке массива.

# Исходное выражение
s = 13**14 + 13**35 - 547
# Список для хранения цифр числа в 13-ричной системе
r = []
# Перевод числа из десятичной системы в 13-ричную
while s > 0:
    # Получаем последнюю цифру (остаток от деления на 13)
    r.append(s % 13)
    # Отбрасываем последнюю цифру (целочисленное деление на 13)
    s = s // 13

# Подсчёт и вывод количества цифр С в 13-ричной записи числа
print(r.count(12))

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

Переведем в систему счисления с основанием 13  и получим:

10◟00.◝.◜.000◞+1 0◟00..◝.◜000◞− 331
     14           35

                10◟00..◝.◜000◞1 0◟00.◝.◜.000◞
              -      20        14
---------------------------------331---
  1000...000 0CCCCCCCCCCC99C
   ◟--◝◜---◞
      20
Ответ: 12

Ошибка.
Попробуйте повторить позже

Задача 13#6360Максимум баллов за задание: 1

Сколько четверок содержится в пятеричной записи числа 2520 + 515 − 1253   ?

Показать ответ и решение

Решение программой

Для подсчёта количества четвёрок в 5-ричной записи числа необходимо написать алгоритм перевода исходного числа в 5-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подчитаем количество четвёрок при помощи метода count().

# Исходное выражение
a = 25**20 + 5**15 - 125**3

# Переменная для хранения числа в 5-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 5-ричную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 5) и добавляем её в начало строки
    s = str(a % 5) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 5)
    a //= 5

# Подсчёт и вывод количества цифр ’4’ в 5-ричной записи числа
print(s.count(’4’))

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

Приведем к общему основанию:

540 + 515 − 59

Переведем в пятеричную систему счисления и получим:

1000...000 +1 000...000− 1 000...000
 ◟--◝◜---◞   ◟---◝◜--◞    ◟--◝◜--◞
     40           15          9

   10◟00..◝.◜000◞1 0◟0000.◝.◜.00000◞
 -      24           15
                     10◟0.◝.◜00◞
-------------------------9----
   1 0◟00.◝.◜.000◞0444444 0◟0.◝.◜00◞
        24               9
Ответ: 6

Ошибка.
Попробуйте повторить позже

Задача 14#6407Максимум баллов за задание: 1

Сколько единиц в двоичной записи числа 243 + 214 + 2  ?

Показать ответ и решение

Решение программой

Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count().

# Исходное выражение
a = 2**43 + 2**14 + 2

# Переменная для хранения числа в двоичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в двоичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(s.count(’1’))

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 15#6408Максимум баллов за задание: 1

Сколько единиц в двоичной записи числа 2100 + 248 + 232 + 213 + 27 + 2 + 1  ?

Показать ответ и решение

Решение программой

Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count().

# Исходное выражение
a = 2**100 + 2**48 + 2**32 + 2**13 + 2**7 + 2 + 1

# Переменная для хранения числа в двоичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в двоичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(s.count(’1’))

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

В двоичной системе счисления, любое число вида  k
2  имеет вид 100 ...002   , где после единицы идёт ровно k  нулей. Соответственно, сумма 2100 + 248 + 232 + 213 + 27 + 2 + 1  не создаст переполнения ни в одном разряде, и будет иметь вид 10..010..010..010..010..112   с единицами ровно на 101, 49, 33, 14, 8, 2 и 1 месте.

Ответ: 7

Ошибка.
Попробуйте повторить позже

Задача 16#6416Максимум баллов за задание: 1

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

Показать ответ и решение

Решение программой

Для подсчёта количества цифр, отличных от нуля, в 8-ричной записи числа необходимо перевести это число в 8-ричную систему счисления при помощи функции oct(). Для итогового подсчета количества цифр, отличных от нуля, будем «отсекать» по одной цифре путем нахождения остатка при делении на 10 и проверять, что она не равна 0.

# Исходное выражение, переведённое в 8-ричную систему
a = int(oct(2**100 + 2**48 + 2**32 + 2**13 + 2**7 + 2 + 1)[2:])

# Счётчик количества ненулевых цифр в восьмеричной записи числа
c = 0

# Пока число больше нуля
while a > 0:
    # Проверяем последнюю цифру (остаток от деления на 10) — если она не равна нулю, увеличиваем счётчик
    if a % 10 != 0:
        c += 1
    # Отбрасываем последнюю цифру (целочисленное деление на 10)
    a //= 10

# Вывод количества ненулевых цифр в восьмеричной записи числа
print(c)

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

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

2100 + 248 + 232 + 213 + 27 + 2 + 1

    99    48      30       12       6
2 ⋅ 2 +  2  + 4 ⋅ 2 +  2 ⋅ 2 + 2 ⋅ 2 + 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

Ошибка.
Попробуйте повторить позже

Задача 17#6499Максимум баллов за задание: 1

Сколько единиц в двочиной записи числа 21024 + 45 + 2?

 

Показать ответ и решение

Решение программой

Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count().

# Исходное выражение
a = 2**1024 + 4**5 + 2

# Переменная для хранения числа в 2-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 2-ричную (двоичную)
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(s.count(’1’))

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

Для начала стоить отметить, что любое десятичное число A в n-ой степени можно записать как единицу и n нулей в системе счисления с основанием A:             n
         ◜--◞◟-◝
An10 = 1 00...000A
Так как нас просят узнать количество единиц в двоичной системе, представим все числа как степени двойки, получим: 21024 + 45 + 2 = 21024 + (22)5 + 21 = 21024 + 210 + 21.  В двоичной системе счисления эта запись выглядит так:     1024        10
  ◜--◞◟--◝    ◜-◞◟-◝
1 000...000 +1 0...000 +10.
Далее выполняем сложение и наглядно получаем ответ:

    10...000..0000...000
 +          1000...000
                    10
------------------------
   1 0◟...◝0◜00◞ 10◟...◝0◜00◞ 10
      1013      8
Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 18#6617Максимум баллов за задание: 1

Сколько единиц в троичной записи числа 32019 + 277 + 3  ?

Показать ответ и решение

Решение программой

Для подсчёта количества единиц в троичной записи числа необходимо написать алгоритм перевода исходного числа в троичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count().

# Исходное выражение
a = 3**2019 + 27**7 + 3

# Переменная для хранения числа в троичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в троичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 3) и добавляем её в начало строки
    s = str(a % 3) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 3)
    a //= 3

# Подсчёт и вывод количества цифр ’1’ в троичной записи числа
print(s.count(’1’))

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

Для начала стоить отметить, что любое десятичное число A в n  -ой степени можно записать как единицу и n  нулей в системе счисления с основанием A:          ◜--◞n◟--◝
An10  = 100...000A

Так как нас просят узнать количество единиц в троичной системе, представим все числа как степени тройки, получим:  2019     7        2019    3 7    1    2019    21    1
3    + 27  + 3 = 3    + (3 )  + 3 =  3    + 3  +  3   . В троичной системе счисления эта запись выглядит так:     2019        21
  ◜--◞◟--◝    ◜-◞◟-◝
1 000...000 +1 0...000 +10  .

Далее выполняем сложение и наглядно получаем ответ:

    10...000..0000...000
 +          1000...000

--------------------10--
   1 0◟...◝0◜00◞ 10◟...◝0◜00◞ 10
      1995     21
Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 19#6618Максимум баллов за задание: 1

Сколько единиц в троичной записи числа 32051 + 816 + 8  ?

Показать ответ и решение

Решение программой

Для подсчёта количества единиц в троичной записи числа необходимо написать алгоритм перевода исходного числа в троичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помози метода count().

# Исходное выражение
a = 3**2051 + 81**6 + 8

# Переменная для хранения числа в троичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в троичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 3) и добавляем её в начало строки
    s = str(a % 3) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 3)
    a //= 3

# Подсчёт и вывод количества цифр ’1’ в троичной записи числа
print(s.count(’1’))

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

Для начала стоить отметить, что любое десятичное число A в n  -ой степени можно записать как единицу и n  нулей в системе счисления с основанием A:          ◜--◞n◟--◝
An10  = 100...000A

Так как нас просят узнать количество единиц в троичной системе, представим все числа как степени тройки, получим:  2051    6        2051    4 6        1      0     2051    24        1      0
3    + 81  + 8 = 3    + (3 )  + (2 ⋅ 3 + 2 ⋅ 3 ) = 3  + 3  +  (2 ⋅ 3 + 2 ⋅ 3 )  . В троичной системе счисления эта запись выглядит так:     2051        24
  ◜--◞◟--◝    ◜-◞◟-◝
1 000...000 +1 0...000 +22  .

Далее выполняем сложение и наглядно получаем ответ:

    10...000..0000...000
 +          1000...000

--------------------22--
   1 0◟...◝0◜00◞ 10◟...◝0◜00◞ 22
      2024     24
Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 20#6619Максимум баллов за задание: 1

Сколько четверок содержится в пятеричной записи числа 550 + 253 − 125  ?

Показать ответ и решение

Решение программой

Для подсчёта количества четвёрок в 5-ричной записи числа необходимо написать алгоритм перевода исходного числа в 5-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество четвёрок при помощи метода count().

# Исходное выражение
a = 5**50 + 25**3 - 125

# Переменная для хранения числа в 5-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 5-ричную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 5) и добавляем её в начало строки
    s = str(a % 5) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 5)
    a //= 5

# Подсчёт и вывод количества цифр ’4’ в 5-ричной записи числа
print(s.count(’4’))

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

Для начала стоить отметить, что любое десятичное число A в n  -ой степени можно записать как единицу и n  нулей в системе счисления с основанием A:              n
         ◜--◞◟--◝
An10  = 100...000A

Так как нас просят узнать количество четверок в пятеричной системе, представим все числа как степени пятерки, получим: 550 + 253 − 125 = 550 + (52)3 − 53 = 550 + 56 − 125  .

Для начала выполним сложение:

 +  10...000..000
--------1000000---
  1 0...01000000
    ◟◝4◜3◞

Вычтем из полученного 53   :

          ⋅44 5
 − 10...01000000
            1000
-------------------
    10◟.◝.◜.0◞ 444000
      44

Примечание: при вычитании в недесятичной системе счисления, мы занимаем не “десяток”, а само основание системы счисления. В данном примере из второй единицы (она стоит в 6 разряде) мы занимаем пять в соседний разряд, и затем из полученной “пятерки” занимаем в следующий разряд, таким образом продолжая до разряда, под которым стоит единица другого числа.

Ответ: 3
Рулетка
Вы можете получить скидку в рулетке!