Складываются все цифры двоичной записи числа
C30EF4 На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи числа N, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы её цифр на 2.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
Укажите минимальное число R, которое превышает число 396 и может являться результатом работы данного алгоритма.
В ответе это число запишите в десятичной системе счисления.
for n in range(1,1000):
n2 = bin(n)[2:]
n2 += str(n2.count('1') % 2)
n2 += str(n2.count('1') % 2)
R = int(n2,2)
if R > 396:
print(R)
break
Если N чётное / не четное
D32E0F На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа и слева ещё по одному или два разряда по следующему правилу: если N чётное, то в конец числа (справа) дописывается нуль, а в начало числа (слева) дописывается единица; если N нечётное, то в конец числа (справа) и в начало числа (слева) дописываются по две единицы.
Пример. Для числа 13 двоичная запись 1101 преобразуется в запись 11110111.
Полученная таким образом запись (в ней на два или четыре разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
Укажите наименьшее число R, превышающее 52, которое может являться результатом работы данного алгоритма.
В ответе это число запишите в десятичной системе счисления.
a = []
for n in range(1,1000):
n2 = bin(n)[2:]
if n % 2 == 0:
n2 = '1' + n2 + '0'
else:
n2 = '11' + n2 + '11'
R = int(n2,2)
if R > 52:
a.append(R)
print(min(a))
C412B3 На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё несколько разрядов по следующему правилу:
а) если N чётное, то к нему справа приписываются два нуля, а слева единица;
б) если N нечётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи;
Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
Например, исходное число 410 = 1002 преобразуется в число 1100002 = 4810, а исходное число 1310 = 11012 преобразуется в число 1101112 = 5510.
Укажите такое наименьшее число N, для которого число R больше числа 190. В ответе запишите это число в десятичной системе счисления.
for n in range(1,1000):
n2 = bin(n)[2:]
if n % 2 == 0:
n2 = '1' + n2 + '00'
else:
n2 = n2 + str(n2.count('1'))[2:]
R = int(n2,2)
if R > 190:
print(n)
break
Двоичная запись числа N / делится / не делится на 3
B9FDF9 На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N делится на 3, то к этой записи дописываются три последние двоичные цифры;
б) если число N на 3 не делится, то остаток от деления умножается на 3, переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 12 = 11002 результатом является число 11001002 = 100, а для исходного числа 4 = 1002 это число 100112 = 19.
Укажите максимальное число R, не превышающее 162, которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
d = []
for n in range (1,1000):
n2=bin(n)[2:]
if n % 3 == 0:
n2+=n2[-3:]
else:
bin((n % 3) * 3)[2:]
R = int(n2, 2)
if R < 162:
d.append(R)
print(max(d))
Троичная запись числа N / делится / не делится на 3
6E67FD На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится троичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N делится на 3, то к этой записи дописываются две последние троичные цифры;
б) если число N на 3 не делится, то остаток от деления умножается на 5, переводится в троичную запись и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 11 = 1023 результатом является число 1021013 = 307, а для исходного числа 6 = 203 это число 20203 = 60.
Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, не меньшее 86.
def tri(x):
s=""
while x>0:
s += str(x % 3)
x = x // 3
return s[::-1]
for n in range(1,1000):
n3 = tri(n)
if n % 3 == 0:
n3 += n3[-2:]
else:
n3 += tri((n % 3) * 5)
R = int(n3, 3)
if R >= 86:
print(n)
break