Часть 2 (решаются с использованием компьютера)

  1. Единицы

На уроках информатики вас, наверное, учили переводить числа из одних систем счисления в другие и выполнять другие подобные операции. Пришло время продемонстрировать эти знания. Найдите количество единиц в двоичной записи заданного числа.

Входные данные

Во входном файле INPUT.TXT записано целое число n (0 ≤ n ≤ 2*109).

Выходные данные

В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — количество двоичных единиц в записи числа n.

Примеры

№      INPUT.TXT         OUTPUT.TXT

1        5                           2

2        7                          3

2. Несложное вычисление

Задано натуральное число n. Необходимо перевести его в k-ичную систему счисления и найти разность между произведением и суммой его цифр в этой системе счисления.

Например, пусть n = 239, k = 8. Тогда представление числа n в восьмеричной системе счисления — 357, а ответ на задачу равен 3 × 5 × 7 − (3 + 5 + 7) = 90.

Входные данные

Входной файл INPUT.TXT содержит два натуральных числа: n и k (1 ≤ n ≤ 109, 2 ≤ k ≤ 10). Оба этих числа заданы в десятичной системе счисления.

Выходные данные

В выходной файл OUTPUT.TXT выведите ответ на задачу (в десятичной системе счисления).

Примеры

№      INPUT.TXT         OUTPUT.TXT

1        239 8                 90

2        1000000000 7       -34

3. Наименьшая система счисления

Известно, что основанием позиционной системы счисления называют количество различных символов, используемых для записи чисел в данной системе счисления. Также известно, что любое число x в b-ичной системе счисления имеет вид x=a0∙b0+a1∙b1+…+an∙bn, где b ≥ 2 и 0 ≤ ai < b.

Для записи чисел в b-ичной системе счисления, где b ≤ 36, могут быть использованы первые b символов из следующего списка 0,1,…, 9, A, B, …, Z. Например, для записи чисел в троичной системы используются символы 0, 1, 2, а в двенадцатеричной - 0,1,…, 9, A, B.

Требуется написать программу, которая по входной строке S определит, является ли данная строка записью числа в системе счисления, с основанием не большим 36, и, если является, определит минимальное основание этой системы счисления.

Входные данные

Входной файл INPUT.TXT содержит в единственной строке входную строку. Длина строки не превышает 255. Все символы строки имеют коды от 32 до 127.

Выходные данные

Выходной файл OUTPUT.TXT должен содержать одно число. Если строка является записью числа в некоторой системе счисления, то нужно вывести минимальное основание такой системы счисления. Иначе вывести -1.

Примеры

№      INPUT.TXT         OUTPUT.TXT

1        123                    4

2        ABCDEF    16

3        AD%AF              -1

 

  1. Бит-реверс

Целое положительное число m записывается в двоичной системе счисления, разряды (в этой записи) переставляются в обратном порядке и число переводится в десятичную систему счисления. Получившееся число принимается за значение функции B(m).

Требуется написать программу, которая для заданного m вычислит B(m).

Входные данные

Входной файл INPUT.TXT содержит натуральное число m (m <= 109).

Выходные данные

В выходной файл OUTPUT.TXT выведите значение B(m).

Примеры

№      INPUT.TXT         OUTPUT.TXT

1        4                        1

2        6                        3

5. Делимость на 7

Требуется определить делимость на 7 ряда целых чисел, записанных в двоичной системе счисления.

Входные данные

В первой строке входного файла INPUT.TXT содержится N – количество чисел (N < 50). В следующих N строках содержатся двоичные числа (по одному в каждой строке). Каждое двоичное число состоит не более чем из 1000 цифр.

Выходные данные

Выходной файл OUTPUT.TXT должен содержать N строк. Для каждого теста в отдельной строке надо выдать сообщение "Yes”, если соответствующее число кратно 7 или "No” в противном случае.

Примеры

№      INPUT.TXT         OUTPUT.TXT

1        3

            1110                            yes

          1010101                        no

           111111111111111111111111111      yes

2        1

              11                     No

6. Забавная игра

Легендарный учитель математики Юрий Петрович придумал забавную игру с числами. А именно, взяв произвольное целое число, он переводит его в двоичную систему счисления, получая некоторую последовательность из нулей и единиц, начинающуюся с единицы. (Например, десятичное число 1910 = 1*24+0*23+0*22+1*21+1*20 в двоичной системе запишется как 100112.) Затем учитель начинает сдвигать цифры полученного двоичного числа по циклу (так, что последняя цифра становится первой, а все остальные сдвигаются на одну позицию вправо), выписывая образующиеся при этом последовательности из нулей и единиц в столбик — он подметил, что независимо от выбора исходного числа получающиеся последовательности начинают с некоторого момента повторяться. И, наконец, Юрий Петрович отыскивает максимальное из выписанных чисел и переводит его обратно в десятичную систему счисления, считая это число результатом проделанных манипуляций. Так, для числа 19 список последовательностей будет таким:           10011

11001

11100

01110

00111

10011

и результатом игры, следовательно, окажется число 1*24+1*23+1*22+0*21+0*20 = 28.

Поскольку придуманная игра с числами все больше занимает воображение учителя, отвлекая тем самым его от работы с ну очень одаренными школьниками, Вас просят написать программу, которая бы помогла Юрию Петровичу получать результат игры без утомительных ручных вычислений.

Входные данные

Входной файл INPUT.TXT содержит одно целое число N (0 <= N <= 32767).

Выходные данные

Ваша программа должна вывести в выходной файл OUTPUT.TXT одно целое число, равное результату игры.

Примеры

№      INPUT.TXT         OUTPUT.TXT

1        19      28

2        1212  1938

7. Число - палиндром

Напомним, что палиндромом называется строка, одинаково читающаяся с обеих сторон. Например, строка «ABBA» является палиндромом, а строка «ABC» - нет.

Необходимо определить, в каких системах счисления с основанием от 2 до 36 представление заданного числа N является палиндромом.

В системах счисления с основанием большим 10 в качестве цифр используются буквы латинского алфавита: A, B, ... , Z. Например, A11 = 1010, Z36 = 3510.

Входные данные

Входной файл INPUT.TXT содержит заданное число N в десятичной системе счисления (1 <= N <= 109).

Выходные данные

Если соответствующее основание системы счисления определяется единственным образом, то выведите в первой строке выходного файла OUTPUT.TXT слово «unique», если оно не единственно — выведите в первой строке выходного файла слово «multiple». Если же такого основания системы счисления не существует — выведите в первой строке выходного файла слово «none».

В случае существования хотя бы одного требуемого основания системы счисления выведите через пробел в возрастающем порядке во второй строке выходного файла все основания системы счисления, удовлетворяющие требованиям.

Примеры

№      INPUT.TXT         OUTPUT.TXT

1        123                       unique

                                       6

2        111                      multiple

                                       6 10 36

3        102892748            none

 

8. Система счисления

Вчера на уроке математики Саша узнал о том, что иногда полезно использовать вместо десятичной системы счисления какую-нибудь другую.  Однако, учительница не объяснила, почему в системе счисления по основанию b в качестве цифр выбирают числа от 0 до b - 1.

Немного подумав, Саша понял, что можно выбирать и другие наборы цифр. Например, вместо троичной системы счисления можно рассмотреть систему счисления, где вместо обычных цифр 0, 1, 2 есть цифры 1, 2 и 3.

Саша заинтересовался вопросом, а как перевести число n в эту систему счисления? Например, число 7 в этой системе записывается как 21, так как 7 = 2∙3+1, а число 22 записывается как 211, так как 22 = 2 ∙ 9 + 1 ∙ 3 + 1.

Входные данные

Входной файл INPUT.TXT содержит натуральное число n, 1 ≤ n ≤ 2•109.

Выходные данные

В выходной файл OUTPUT.TXT выведите число n записанное в указанной системе счисления.

Примеры

№      INPUT.TXT         OUTPUT.TXT

1        7                        21

2        22                     211