Заданий номер 5 из разных источников.
Задания ЕГЭ по информатике 5-й линейки
Статград. 16.12.2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(3,\) то слева к нему приписывается «\(1\)», а справа «\(02\)»;
б) если число \(N\) на \(3\) не делится, то остаток от деления умножается на \(4,\) переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11_{10} = 102_3\) результатом является число \(10222_3 = 107_{10},\) а для исходного числа \(12_{10} = 110_3\) это число \(111002_3 = 353_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) не превышающее \(250.\)
Решение:
Python
def conv(n):
alph = '012'
ans = ''
while n:
ans = alph[n % 3] + ans
n //= 3
return ans
def R(n):
tr = conv(n)
if n % 3 == 0:
tr = '1' + tr + '02'
else:
tr += conv(n % 3 * 4)
return int(tr, 3)
#print(R(11), R(12))
print(max(N for N in range(1, 300) if R(N) <= 250))
Ответ: 26
ЕГКР. 13.12.2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(3,\) то к этой записи справа дописываются две последние троичные цифры;
б) если число \(N\) на \(3\) не делится, то вычисляется сумма цифр полученной троичной записи, эта сумма умножается на \(3,\) переводится в троичную систему счисления дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(8_{10} = 22_3\) результатом является число \(22110_3 = 228_{10},\) а для исходного числа \(9_{10} = 100_3\) это число \(10000_3 = 81_{10}.\)
Укажите минимальное нечётное число \(R,\) большее \(208,\) которое может быть получено с помощью описанного алгоритма.
В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph = '012'
ans = ''
while n:
ans = alph[n % 3] + ans
n //= 3
return ans
def R(N):
tr = conv(N)
tr += tr[-2:] if N % 3 == 0 else conv(3 * sum(int(x) for x in tr))
return int(tr, 3)
#print(R(8), R(9))
print(min(R(x) for x in range(9, 1000) if R(x) % 2 == 1 and R(x) > 208))
Ответ: 243
ЕГЭ 2026. Демо
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(3,\) то к этой записи дописываются её три последние двоичные цифры;
б) если число \(N\) на \(3\) не делится, то остаток от деления умножается на \(3,\) переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(12_{10} = 1100_2\) результатом является число \(1100100_2 = 100_{10},\) а для исходного числа \(4_{10} = 100_2\) это число \(10011_2 = 19_{10}.\)
Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) не меньшее \(200.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-3:] if N % 3 == 0 else f'{N % 3 * 3:b}'
return int(bn, 2)
#print(R(12), R(4))
for N in range(4, 200):
if R(N) >= 200:
print(N)
break
Ответ: 26
ЕГЭ 2026. Крылов. Вариант 20
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Перемножаются все цифры исходного числа.
Суммируются все цифры исходного числа.
Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).
Пример Исходное число: \(621.\) Произведение цифр: \( 6 \times 2 \times 1 = 12 ;\) сумма цифр: \(6 + 2 + 1 = 9.\) Результат: \(129.\)
Укажите наибольшее число, при обработке которого автомат выдаст число \(24019.\)
Решение:
Python
def R(N):
digs = [int(x) for x in str(N)]
p = 1
for x in digs:
p *= x
s = sum(digs)
a = [s, p]
a.sort()
return int(str(a[1]) + str(a[0]))
#print(R(621))
for N in range(10000, 1, -1):
if R(N) == 24019:
print(N)
break
Ответ: 865
ЕГЭ 2026. Крылов. Вариант 19
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Перемножаются все цифры исходного числа.
Суммируются все цифры исходного числа.
Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).
Пример Исходное число: \(621.\) Произведение цифр: \( 6 \times 2 \times 1 = 12 ;\) сумма цифр: \(6 + 2 + 1 = 9.\) Результат: \(129.\)
Укажите наибольшее число, при обработке которого автомат выдаст число \(33621.\)
Решение:
Python
def R(N):
digs = [int(x) for x in str(N)]
p = 1
for x in digs:
p *= x
s = sum(digs)
a = [s, p]
a.sort()
return int(str(a[1]) + str(a[0]))
#print(R(621))
for N in range(10000, 1, -1):
if R(N) == 33621:
print(N)
break
Ответ: 876
ЕГЭ 2026. Крылов. Вариант 18
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Вычисляется сумма квадратов первой и второй, а также второй и третьей цифр исходного числа.
Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).
Пример Исходное число: \(621.\) Сумма квадратов цифр: \(6^2 + 2^2 = 40;\) \(2^2 + 1^2 = 5.\) Результат: \(405.\)
Укажите наибольшее число, при обработке которого автомат выдаст число \(7434.\)
Решение:
Python
def R(N):
sq = [int(x)**2 for x in str(N)]
nums = [sq[0] + sq[1], sq[1] + sq[2]]
nums.sort()
return int(str(nums[1]) + str(nums[0]))
#print(R(621))
for N in range(999, 99, -1):
if R(N) == 7434:
print(N)
break
Ответ: 753
ЕГЭ 2026. Крылов. Вариант 17
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Вычисляется сумма квадратов первой и второй, а также второй и третьей цифр исходного числа.
Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).
Пример Исходное число: \(621.\) Сумма квадратов цифр: \(6^2 + 2^2 = 40;\) \(2^2 + 1^2 = 5.\) Результат: \(405.\)
Укажите наибольшее число, при обработке которого автомат выдаст число \(9752.\)
Решение:
Python
def R(N):
sq = [int(x)**2 for x in str(N)]
nums = [sq[0] + sq[1], sq[1] + sq[2]]
nums.sort()
return int(str(nums[1]) + str(nums[0]))
#print(R(621))
for N in range(999, 99, -1):
if R(N) == 9752:
print(N)
break
Ответ: 946
ЕГЭ 2026. Крылов. Вариант 16
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если количество количество значащих цифр в двоичной записи чётное, то в этой записи в середину записывается \(1;\)
б) если количество значащих цифр в двоичной записи нечётное, то значение не изменяется.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(5_{10} = 101_2\) результатом является число \(101_2 = 5_{10},\) а для исходного числа \(2_{10} = 10_2\) результатом является число \(110_2 = 6_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью описанного алгоритма получается число \(R,\) не большее, чем \(26.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
q = len(bn)
if q % 2 == 0:
bn = bn[:q // 2] + '1' + bn[q // 2 :]
return int(bn, 2)
#print(R(5), R(2))
for N in range(100, 2, -1):
if R(N) <= 26:
print(N)
break
Ответ: 26
ЕГЭ 2026. Крылов. Вариант 15
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если количество количество значащих цифр в двоичной записи чётное, то в этой записи в середину записывается \(1;\)
б) если количество значащих цифр в двоичной записи нечётное, то значение не изменяется.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(5_{10} = 101_2\) результатом является число \(101_2 = 5_{10},\) а для исходного числа \(2_{10} = 10_2\) результатом является число \(110_2 = 6_{10}.\)
Укажите минимальное число \(N,\) после обработки которого с помощью описанного алгоритма получается число \(R,\) не меньшее, чем \(26.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
q = len(bn)
if q % 2 == 0:
bn = bn[:q // 2] + '1' + bn[q // 2 :]
return int(bn, 2)
#print(R(5), R(2))
for N in range(2, 100):
if R(N) >= 26:
print(N)
break
Ответ: 12
ЕГЭ 2026. Крылов. Вариант 14
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее, если исходное число чётное, то справа к построенной двоичной записи числа \(N\) приписывается \(0,\) если нечётное, то \(1.\)
Далее, полученная на втором шаге алгоритма запись обрабатывается по следующему правилу:
а) если количество единиц в двоичной записи кратно трёх, то в этой записи два левых разряда заменяются на \(11;\)
б) если количество единиц в двоичной записи некратно трёх, то в этой записи два левых разряда заменяются на \(10.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(6_{10} = 110_2\) результатом является число \(1000_2 = 8_{10},\) а для исходного числа \(3_{10} = 11_2\) результатом является число \(111_2 = 7_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью описанного алгоритма получается число \(R,\) не большее, чем \(37.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-1]
st = '11' if bn.count('1') % 3 == 0 else '10'
return int(st + bn[2:], 2)
#print(R(6), R(3))
for N in range(100, 2, -1):
if R(N) <= 37:
print(N)
break
Ответ: 25
ЕГЭ 2026. Крылов. Вариант 13
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее, если исходное число чётное, то справа к построенной двоичной записи числа \(N\) приписывается \(0,\) если нечётное, то \(1.\)
Далее, полученная на втором шаге алгоритма запись обрабатывается по следующему правилу:
а) если количество единиц в двоичной записи кратно трёх, то в этой записи два левых разряда заменяются на \(11;\)
б) если количество единиц в двоичной записи некратно трёх, то в этой записи два левых разряда заменяются на \(10.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(6_{10} = 110_2\) результатом является число \(1000_2 = 8_{10},\) а для исходного числа \(3_{10} = 11_2\) результатом является число \(111_2 = 7_{10}.\)
Укажите минимальное число \(N,\) после обработки которого с помощью описанного алгоритма получается число \(R,\) не меньшее, чем \(26.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-1]
st = '11' if bn.count('1') % 3 == 0 else '10'
return int(st + bn[2:], 2)
#print(R(6), R(3))
for N in range(3, 100):
if R(N) >= 26:
print(N)
break
Ответ: 9
ЕГЭ 2026. Крылов. Вариант 12
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится четверичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(4,\) то к этой записи дописываются две последние четверичные цифры;
б) если число \(N\) не делится на \(4,\) то остаток от деления умножается на \(2,\) переводится в четверичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11_{10} = 23_4\) результатом является число \(2312_4 = 182_{10},\) а для исходного числа \(12_{10} = 30_4\) результатом является число \(3030_4 = 204_{10}.\)
Укажите минимальное число \(N,\) после обработки которого с помощью описанного алгоритма получается число \(R,\) не меньшее \(1088.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph = '0123'
res = ''
while n:
res = alph[n % 4] + res
n //= 4
return res
def R(N):
qn = conv(N)
qn += qn[-2:] if N % 4 == 0 else conv(N % 4 * 2)
return int(qn, 4)
#print(R(11), R(12))
for N in range(4, 1000):
if R(N) >= 1088:
print(N)
break
Ответ: 68
ЕГЭ 2026. Крылов. Вариант 11
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится четверичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(4,\) то к этой записи дописываются две последние четверичные цифры;
б) если число \(N\) не делится на \(4,\) то остаток от деления умножается на \(2,\) переводится в четверичную запись и дописывается в конец числа.
Полученная таким образом запись является четверичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11_{10} = 23_4\) результатом является число \(2312_4 = 182_{10},\) а для исходного числа \(12_{10} = 30_4\) результатом является число \(3030_4 = 204_{10}.\)
Укажите минимальное число \(N,\) после обработки которого с помощью описанного алгоритма получается число \(R,\) не меньшее \(1025.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph = '0123'
res = ''
while n:
res = alph[n % 4] + res
n //= 4
return res
def R(N):
qn = conv(N)
qn += qn[-2:] if N % 4 == 0 else conv(N % 4 * 2)
return int(qn, 4)
#print(R(11), R(12))
for N in range(4, 1000):
if R(N) >= 1025:
print(N)
break
Ответ: 66
ЕГЭ 2026. Крылов. Вариант 10
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится четверичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(4,\) то к этой записи дописываются две последние четверичные цифры;
б) если число \(N\) не делится на \(4,\) то остаток от деления умножается на \(2,\) переводится в четверичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11_{10} = 23_4\) результатом является число \(2312_4 = 182_{10},\) а для исходного числа \(12_{10} = 30_4\) результатом является число \(3030_4 = 204_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью описанного алгоритма получается число \(R,\) меньшее \(369.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph = '0123'
res = ''
while n:
res = alph[n % 4] + res
n //= 4
return res
def R(N):
qn = conv(N)
qn += qn[-2:] if N % 4 == 0 else conv(N % 4 * 2)
return int(qn, 4)
#print(R(11), R(12))
for N in range(500, 2, -1):
if R(N) < 369:
print(N)
break
Ответ: 89
ЕГЭ 2026. Крылов. Вариант 9
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится четверичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(4,\) то к этой записи дописываются две последние четверичные цифры;
б) если число \(N\) не делится на \(4,\) то остаток от деления умножается на \(2,\) переводится в четверичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11_{10} = 23_4\) результатом является число \(2312_4 = 182_{10},\) а для исходного числа \(12_{10} = 30_4\) результатом является число \(3030_4 = 204_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью описанного алгоритма получается число \(R,\) меньшее \(261.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph = '0123'
res = ''
while n:
res = alph[n % 4] + res
n //= 4
return res
def R(N):
qn = conv(N)
qn += qn[-2:] if N % 4 == 0 else conv(N % 4 * 2)
return int(qn, 4)
#print(R(11), R(12))
for N in range(300, 2, -1):
if R(N) < 261:
print(N)
break
Ответ: 61
ЕГЭ 2026. Крылов. Вариант 8
На вход алгоритма подаётся натуральное число \(N \, (N > 3).\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) чётное, то к этой записи дописываются справа последние две цифры записи в том же порядке, в каком они идут в самой записи;
б) если число \(N\) нечётное, то к этой записи дописываются справа последние три цифры записи в том же порядке, в каком они идут в самой записи.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(4_{10} = 100_2\) результатом является число \(10000_2 = 16_{10},\) а для исходного числа \(9_{10} = 1001_2\) результатом является число \(1001001_2 = 73_{10}.\)
Укажите минимальное число \(N,\) после обработки которого с помощью описанного алгоритма получается число \(R,\) большее \(256.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-2:] if N % 2 == 0 else bn[-3:]
return int(bn, 2)
#print(R(4), R(9))
for N in range(4, 1000):
if R(N) > 256:
print(N)
break
Ответ: 33
ЕГЭ 2026. Крылов. Вариант 7
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(4,\) то к этой записи дописывается справа она же;
б) если число \(N\) не делится на \(4,\) то к этой записи дописывается справа эта же запись, но в обратном порядке.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(4_{10} = 100_2\) результатом является число \(100100_2 = 36_{10},\) а для исходного числа \(11_{10} = 1011_2\) результатом является число \(10111101_2 = 189_{10}.\)
Укажите минимальное число \(N,\) после обработки которого с помощью описанного алгоритма получается число \(R,\) не меньшее \(544.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn if N % 4 == 0 else bn[::-1]
return int(bn, 2)
#print(R(4), R(11))
for N in range(4, 1000):
if R(N) >= 544:
print(N)
break
Ответ: 17
ЕГЭ 2026. Крылов. Вариант 6
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) чётное, то в этой каждая единица заменяется на \(11;\)
б) если число \(N\) нечётное, то в этой каждый ноль заменяется на \(00.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(4_{10} = 100_2\) результатом является число \(1100_2 = 12_{10},\) а для исходного числа \(5_{10} = 101_2\) результатом является число \(1001_2 = 9_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью описанного алгоритма получается число \(R,\) меньшее \(70,\) но при этом отличное от самого числа \(N.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bn.replace('1', 'x').replace('x', '11') if N % 2 == 0 else \
bn.replace('0', 'x').replace('x', '00')
return int(bn, 2)
#print(R(4), R(5))
for N in range(100, 4, -1):
if R(N) < 70 and R(N) != N:
print(N)
break
Ответ: 29
ЕГЭ 2026. Крылов. Вариант 5
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) чётное, то в этой каждая единица заменяется на \(11;\)
б) если число \(N\) нечётное, то в этой каждый ноль заменяется на \(00.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(4_{10} = 100_2\) результатом является число \(1100_2 = 12_{10},\) а для исходного числа \(5_{10} = 101_2\) результатом является число \(1001_2 = 9_{10}.\)
Укажите минимальное число \(N,\) после обработки которого с помощью описанного алгоритма получается число \(R,\) большее \(70.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bn.replace('1', 'x').replace('x', '11') if N % 2 == 0 else \
bn.replace('0', 'x').replace('x', '00')
return int(bn, 2)
#print(R(4), R(5))
for N in range(2, 100):
if R(N) > 70:
print(N)
break
Ответ: 14
ЕГЭ 2026. Крылов. Вариант 4
Автомат получает на вход четырёхзначное число \(K.\) По этому числу строится новое число \(L\) по следующим правилам:
Вычисляется число \(S\) — сумма всех цифр числа \(K.\)
Вычисляется число \(M,\) равное значению максимальной цифры в записи числа \(K.\)
Вычисляется число \(N,\) равное значению минимальной цифры в записи числа \(K.\)
Вычисляется число \(P_1 : P_1 = S - M.\)
Вычисляется число \(P_2 : P_2 = S - N.\)
Новое число \(L\) получается в результате записи рядом без пробелов чисел \(P_1\) и \(P_2\) таким образом, чтобы они следовали слева направо в невозрастающем порядке.
Например. Исходное число \(K = 6241.\)
Сумма его цифр \(S = 6 + 2 + 4 + 1 = 13.\)
\(M = 6.\)
\(N = 1.\)
\(P_1 = 13 - 6 = 7.\)
\(P_2 = 13 - 1 = 12.\)
Результат \(L = 127.\)
Укажите наименьшее число \(K,\) при обработке которого автомат выдаст число \(L = 2013.\)
Решение:
Python
def L(K):
digs = [int(x) for x in str(K)]
S = sum(digs)
M, N = max(digs), min(digs)
A = [S - M, S - N]
A.sort()
return int(str(A[1]) + str(A[0]))
#print(L(6241))
for K in range(1000, 10_000):
if L(K) == 2013:
print(K)
break
Ответ: 1488
ЕГЭ 2026. Крылов. Вариант 3
Автомат получает на вход четырёхзначное число \(K.\) По этому числу строится новое число \(L\) по следующим правилам:
Вычисляется число \(S\) — сумма всех цифр числа \(K.\)
Вычисляется число \(M,\) равное значению максимальной цифры в записи числа \(K.\)
Вычисляется число \(N,\) равное значению минимальной цифры в записи числа \(K.\)
Вычисляется число \(P_1 : P_1 = S - M.\)
Вычисляется число \(P_2 : P_2 = S - N.\)
Новое число \(L\) получается в результате записи рядом без пробелов чисел \(P_1\) и \(P_2\) таким образом, чтобы они следовали слева направо в неубывающем порядке.
Например. Исходное число \(K = 6241.\)
Сумма его цифр \(S = 6 + 2 + 4 + 1 = 13.\)
\(M = 6.\)
\(N = 1.\)
\(P_1 = 13 - 6 = 7.\)
\(P_2 = 13 - 1 = 12.\)
Результат \(L = 712.\)
Укажите наименьшее число \(K,\) при обработке которого автомат выдаст число \(L = 1318.\)
Решение:
Python
def L(K):
digs = [int(x) for x in str(K)]
S = sum(digs)
M, N = max(digs), min(digs)
A = [S - M, S - N]
A.sort()
return int(str(A[0]) + str(A[1]))
#print(L(6241))
for K in range(1000, 10_000):
if L(K) == 1318:
print(K)
break
Ответ: 1666
ЕГЭ 2026. Крылов. Вариант 2
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(3,\) то к этой записи дописываются три последние двоичные цифры;
б) если число \(N\) на \(3\) не делится, то остаток от деления сначала уменьшается на единицу, после чего полученное число умножается на \(3,\) а затем результат умножения переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(12_{10} = 1100_2\) результатом является число \(1100100_2 = 100_{10},\) а для исходного числа \(5_{10} = 101_2\) результатом является число \(10111_2 = 23_{10}.\)
Укажите максимальное число \(R,\) меньшее \(416,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-3:] if N % 3 == 0 else f'{(N % 3 - 1) * 3:b}'
return int(bn, 2)
#print(R(12), R(4))
print(max(R(N) for N in range(4, 500) if R(N) < 416))
Ответ: 411
ЕГЭ 2026. Крылов. Вариант 1
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(3,\) то к этой записи дописываются три последние двоичные цифры;
б) если число \(N\) на \(3\) не делится, то остаток от деления сначала увеличивается на единицу, после чего полученное число умножается на \(3,\) а затем результат умножения переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(12_{10} = 1100_2\) результатом является число \(1100100_2 = 100_{10},\) а для исходного числа \(4 = 100_2\) результатом является число \(100110_2 = 38_{10}.\)
Укажите максимальное число \(R,\) не превышающее \(416,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-3:] if N % 3 == 0 else f'{(N % 3 + 1) * 3:b}'
return int(bn, 2)
#print(R(12), R(4))
print(max(R(N) for N in range(4, 500) if R(N) <= 416))
Ответ: 411
ЕГЭ 2026. Статград. 23.10.2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(5,\) то к этой записи дописывается справа две единицы;
б) если число \(N\) на \(5\) не делится, то результат целочисленного деления \(N\) на \(5\) переводится в двоичную систему счисления и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(20 = 10100_2\) результатом является число \(1010011_2 = 83,\) а для исходного числа \(14 = 1110_2\) результатом является число \(111010_2 = 58.\)
Укажите минимальное нечётное число \(N,\) для которого с помощью описанного алгоритма получается число, не меньшее \(783.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 5 == 0:
bn += '11'
else:
bn += bin(N // 5)[2:]
return int(bn, 2)
#print(R(20), R(14))
print(min(N for N in range(1, 1000, 2) if R(N) >= 783))
Ответ: 49
ЕГЭ. Основная волна. Пересдача. 03.07.2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу.
а) если число чётное, то к двоичной записи числа слева дописывается \(10;\)
6) если число нечётное, то к двоичной записи числа слева дописывается \(1\) и справа дописывается \(01.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(4_{10} = 100_2\) результатом является число \(20_{10} = 10100_2,\) а для исходного числа \(5_{10} = 101_2\) это число \(53_{10} = 110101_2.\)
Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее, чем \(30.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
bn = '10' + bn
else:
bn = '1' + bn + '01'
return int(bn, 2)
#print(R(4), R(5))
print(max(N for N in range(4, 30) if R(N) < 30))
Ответ: 6
ЕГЭ. Апробация. 05.03.2025-2
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число чётное, то к двоичной записи слева дописывается \(10;\)
б) если число нечётное, то к двоичной записи числа слева дописывается \(1\) и справа дописывается \(01.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(4_{10} = 100_2\) результатом является число \(20_{10} = 10100_2,\) а для исходного числа \(5_{10} = 101_2\) это число \(53_{10} = 110101_2.\)
Укажите максимальное число \(R,\) которое может быть результатом работы данного алгоритма, при условии, что \(N\) не больше \(12.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
bn = '10' + bn
else:
bn = '1' + bn + '01'
return int(bn, 2)
print(max(R(N) for N in range(1, 13)))
Ответ: 109
ЕГЭ. Основная волна. Резерв. 23.06.2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу.
а) если число \(N\) делится на \(3,\) то слева дописывается «\(1\)», а справа — «\(02\)».
6) если число \(N\) на \(3\) не делится, то остаток от деления числа на \(3\) умножается на \(4,\) переводится в троичную запись и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(6 = 20_3\) результатом является число \(12002_3 = 137,\) а для исходного числа \(11_{10} = 102_3\) результатом является число \(10222_{3} = 107_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее чем \(199.\)
Решение:
Python
def conv(n):
alph = '012'
ans = ''
while n:
ans = alph[n % 3] + ans
n //= 3
return ans
def R(N):
tr = conv(N)
if N % 3 == 0:
tr = '1' + tr + '02'
else:
tr += conv(N % 3 * 4)
return int(tr, 3)
#print(R(6), R(12))
print(max(N for N in range(3, 200) if R(N) < 199))
Ответ: 20
ЕГЭ. Основная волна. Резерв. 19.06.2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(3,\) то слева к нему приписывается «\(1\)», а справа «\(02\)».
6) если число \(N\) на \(3\) не делится, то остаток от деления на \(3\) умножается на \(4,\) переводится в троичную запись и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11_{10} = 102_3\) результатом является число \(10222_3 = 107_{10},\) а для исходного числа \(12_{10} = 110_3\) это число \(111002_3 = 353_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее \(100.\)
Решение:
Python
def conv(n):
alph = '012'
ans = ''
while n:
ans = alph[n % 3] + ans
n //= 3
return ans
def R(N):
tr = conv(N)
if N % 3 == 0:
tr = '1' + tr + '02'
else:
tr += conv(N % 3 * 4)
return int(tr, 3)
#print(R(11), R(12))
print(max(N for N in range(1, 100) if R(N) < 100))
Ответ: 10
ЕГЭ. Основная волна. 11.06.2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(3,\) то к этой записи дописываются две последние троичные цифры;
б) если число \(N\) на \(3\) не делится, то остаток от деления умножается на \(5,\) переводится в троичную запись и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11_{10} = 102_3,\) результатом является число \(102101_3 = 307_{10},\) а для исходного числа \(12_{10} = 110_3\) это число \(11010_3 = 111_{10}.\)
Укажите минимальное число \(R,\) большее \(150,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph = '012'
ans = ''
while n:
ans = alph[n % 3] + ans
n //= 3
return ans
def R(N):
tr = conv(N)
tr += tr[-2:] if N % 3 == 0 else conv(N % 3 * 5)
return int(tr, 3)
#print(R(11), R(12))
print(min(R(N) for N in range(4, 200) if R(N) > 150))
Ответ: 162
ЕГЭ. Основная волна. 10.06.2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(3,\) то к этой записи дописывается справа две последние цифры троичной записи;
б) если число \(N\) не делится на \(3,\) то остаток от деления умножается на \(5,\) переводится в троичную запись и дописывается в конец числа.
Полученная таким образом запись является троичной записью возможного числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(12 = 110_3,\) результатом является число \(11010_3 = 111,\) а для исходного числа \(4 = 11_3,\) остаток от деления на \(3\) равен \(1,\) \(1 \cdot 5 = 5,\) в троичной записи \(5 = 12_3,\) результат: \(1112_3 = 41.\)
Укажите наименьшее число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) не меньшее чем \(290.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph = '012'
ans = ''
while n:
ans = alph[n % 3] + ans
n //= 3
return ans
def R(N):
tr = conv(N)
if N % 3 == 0:
tr += tr[-2:]
else:
tr += conv(N % 3 * 5)
return int(tr, 3)
#print(R(12), R(4))
print(min(N for N in range(4, 300) if R(N) >= 290))
Ответ: 11
ЕГЭ. Апробация. 14.05.2025-1
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи числа \(N,\) и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001.\)
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы её цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(12_{10} = 1100_2\) результатом является число \(110000_2 = 48_{10},\) а для исходного числа \(7_{10} = 111_2\) это число \(11110_2 = 30_{10}.\) Укажите такое наименьшее число \(N,\) для которого результат работы данного алгоритма больше числа \(85.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
#print(R(12), R(7))
for N in range(1, 100):
if R(N) > 85:
print(N)
break
Ответ: 21
ЕГЭ. ЕГКР. 19.04.2025
На вход алгоритма подаётся натуральное число \(N\) \((N> 2).\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу.
а) если число \(N\) делится на \(3,\) то к этой записи дописываются две последние троичные цифры;
6) если число \(N\) на \(3\) не делится, то остаток от деления умножается на \(3,\) переводится в троичную систему и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(6_{10} = 20_3\) результатом является число \(2020_3 = 60_{10},\) а для исходного числа \(4_{10} = 11_3\) это число \(1110_3 = 39_{10}.\) Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число не превышающее \(150.\)
Решение:
Python
def conv(N):
alph = '012'
ans = ''
while N:
ans = alph[N % 3] + ans
N //= 3
return ans
def R(N):
tr = conv(N)
tr += tr[-2:] if N % 3 == 0 else conv( N % 3 * 3)
return int(tr, 3)
#print(R(6), R(4))
print(max(N for N in range(3, 150) if R(N) <= 150))
Ответ: 16
ЕГЭ. Досрочный экзамен. 08.04.2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(0,\) а затем два левых разряда заменяются на \(10;\)
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается \(1,\) а затем два левых разряда заменяются на \(11.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(6_{10} = 110_2\) результатом является число \(1000_2 = 8_{10},\) а для исходного числа \(4_{10} = 100_2\) результатом является число \(1101_2 = 13_{10}.\)
Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) большее \(480.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('1') % 2 == 0:
bn = '10' + bn[2:] + '0'
else:
bn = '11' + bn[2:] + '1'
return int(bn, 2)
#print(R(6), R(4))
for N in range(7, 500):
if R(N) > 480:
print(N)
break
Ответ: 176
ЕГЭ. Апробация. 05.03.2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(0,\) а затем два левых разряда заменяются на \(10;\)
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается \(1,\) а затем два левых разряда заменяются на \(11.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(6_{10} = 110_2\) результатом является число \(1000_2 = 8_{10},\) а для исходного числа \(4_{10} = 100_2\) результатом является число \(1101_2 = 13_{10}.\)
Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) большее \(19.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('1') % 2 == 0:
bn = '10' + bn[2:] + '0'
else:
bn = '11' + bn[2:] + '1'
return int(bn, 2)
for N in range(2, 20):
if R(N) > 19:
print(N)
break
Ответ: 8
ЕГЭ. Шастин. 7.6.2025
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(5,\) то к этой записи дописываются две последние троичные цифры;
6) если число \(N\) на \(5\) не делится, то остаток от деления умножается на \(2,\) переводится в троичную запись и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11 = 102_3\) результатом является число \(1022_3 = 35,\) а для исходного числа \(14 = 112_3\) это число \(11222_3 = 134.\)
Укажите максимальное число \(R,\) не превышающее \(514,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph = '012'
ans = ''
while n:
ans = alph[n % 3] + ans
n //= 3
return ans
def R(N):
tr = conv(N)
if N % 5 == 0:
tr += tr[-2:]
else:
tr += conv(N % 5 * 2)
return int(tr, 3)
#print(R(11), R(14))
print(max(R(N) for N in range(11, 550) if R(N) <= 514))
Ответ: 500
ЕГЭ. Шастин. 5.6.2025
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N > 1.\) Алгоритм строит по нему новое число R следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если количество разрядов в двоичной записи числа чётное, тогда в центр этой записи дописывается \(010.\)
6) если количество разрядов в этой записи нечётное, тогда последняя её цифра дублируется и дописывается в конец, а затем в центр полученной записи дописывается \(101.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(5_{10} = 101_2\) результатом является число \(1010111_2 = 87_{10},\) а для исходного числа \(8_{10} = 1000_2\) результатом является число \(1001000_2 = 72_{10}.\)
Укажите минимальное число \(R,\) большее \(414,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if len(bn) % 2 == 0:
bn = bn[:len(bn) // 2] + '010' + bn[len(bn) // 2:]
else:
bn += bn[-1]
bn = bn[:len(bn) // 2] + '101' + bn[len(bn) // 2:]
return int(bn, 2)
#print(R(5), R(8))
print(min(R(N) for N in range(2, 1000) if R(N) > 414))
Ответ: 424
ЕГЭ. Шастин. 3.6.2025
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится семеричная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в этой записи чётна, то к ней в конец дописываются \(3\) пятёрки.
6) иначе, если сумма цифр в этой записи нечётна, то слева к этой записи дописываются \(2\) тройки, а в конец \(1\) шестёрка.
Полученная таким образом запись является семеричной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11 = 14_7\) результатом является число \(33146_7 = 8315,\) а для исходного числа \(14 = 20_7\) это число \(20555_7 = 5087.\)
Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее \(12717.\)
Решение:
Python
def conv(n):
alph = '0123456'
ans = ''
while n:
ans = alph[n % 7] + ans
n //= 7
return ans
def R(N):
sn = conv(N)
if sum(int(x) for x in sn) % 2 == 0:
sn += '555'
else:
sn = '33' + sn + '6'
return int(sn, 7)
#print(R(11), R(14))
print(max(N for N in range(1, 13000) if R(N) < 12717))
Ответ: 47
ЕГЭ. Шастин. 1.6.2025
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(1,\) а затем два левых разряда заменяются на \(11;\)
б) если сумма цифр в двоичной записи числа нечётная, то в конец этой записи дописывается еще одна цифра — \(0,\) если нулей в этой записи меньше, чем единиц, а в противном случае \(1.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\) Например, для исходного числа \(6_{10} = 110_2\) результатом является число \(1101_2 = 13_{10},\) а для исходного числа \(4_{10} = 100_2\) результатом является число \(1001_2 = 9_{10}.\) Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) большее \(271.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('1') % 2 == 0:
bn = '11' + bn[2:] + '1'
else:
bn += '0' if bn.count('0') < bn.count('1') else '1'
return int(bn, 2)
#print(R(6), R(4))
for N in range(7, 1000):
if R(N) > 271:
print(N)
break
Ответ: 129
ЕГЭ. Статград. Профиль. 12.05.2025-1
Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Затем строится число по следующему правилу: сначала записываются все единицы из двоичной записи исходного числа, затем все нули из двоичной записи исходного числа.
Результат переводится в десятичную систему счисления.
Результатом работы алгоритма становится модуль разности исходного числа \(N\) и числа, полученного на предыдущем шаге.
Пример. Дано число \(N = 17.\) Алгоритм работает следующим образом.
Строим двоичную запись числа \(N:\) \(17_{10} = 10001_2.\)
Строим число по правилу: \(11000_2.\)
Переводим в десятичную систему: \(11000_2 = 24_{10}.\)
Вычисляем модуль разности: \(| 17 – 24 | = 7,\) \(R = 7.\)
При каком наименьшем \(N,\) не превышающем \(2 \cdot 10^8,\) в результате работы алгоритма получится наибольшее значение \(R?\)
Решение:
Новое число \(N1,\) получаемое из \(N\) на 2 шаге, имеет в своей двоичной записи столько же разрядов, сколько и исходное \(N\) в двоичной записи. Для того, чтобы \(R\) было наибольшим, необходимо чтобы оно имело в своей двоичной записи как можно больше разрядов. Так как \(\log_2 (2 \cdot 10^8) = 27.575,\) то постараемся найти \(28\)-разрядное двоичное число. Кроме того, нужно подобрать это число так, чтобы после перестановок пункта 2 в старших разрядах окажется наибольшее число единиц. Простой поверкой убеждаемся, что числа, содержание \(14\) и \(15\) единиц в результате работы алгоритма дают наибольшее \(R.\)
>>> int('1111111111111100000000000000', 2) - int('1000000000000001111111111111', 2)
134193153
>>> int('1111111111111110000000000000', 2) - int('1000000000000011111111111111', 2)
134193153
Наименьшим \(N,\) которое даёт такой результат, будет \(1000000000000001111111111111_2 = 134225919.\)
Ответ: 134225919
ЕГЭ. Статград. База. 12.05.2025-1
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) нечётное, то в этой записи каждая единица заменяется на \(111;\)
б) если число \(N\) чётное, то в этой записи каждый нуль заменяется на \(000.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исх одного числа \(12_{10} = 1100_2\) результатом является число \(11000000_2 = 192_{10}.\) Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается минимальное число \(R,\) большее чем \(701.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bn. replace('1', '111') if N % 2 else bn.replace('0', '000')
return int(bn, 2)
#print(R(12))
mr = min(R(N) for N in range(1, 800) if R(N) > 701)
print(max(N for N in range(1, 800) if R(N) == mr))
Ответ: 54
ЕГЭ. Шастин. 7.05.2025
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на 2, то в этой записи все «\(0\)» заменяются на «\(1\)»;
6) если число \(N\) на \(2\) не делится, то в этой записи все «\(1\)», кроме первой, заменяются на «\(00\)».
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11 = 1011_2\) результатом является число \(100000_2 = 32.\)
Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается максимальное число \(R,\) не превышающее \(600.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
bn = bn.replace('0', '1')
else:
bn = '1' + bn[1:].replace('1', '00')
return int(bn, 2)
#print(R(11))
rmax = max(R(N) for N in range(1, 600) if R(N) <= 600)
print(max(N for N in range(1, 600) if R(N) == rmax))
Ответ: 257
ЕГЭ. Демо-2025
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
а) если число чётное, то к двоичной записи числа слева дописывается \(10\);
б) если число нечётное, то к двоичной записи числа слева дописывается \(1\) и справа дописывается \(01\).
Полученная таким образом запись является двоичное записью искомого числа \(R\).
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(4_{10} = 100_2\) результатом является число \(20_{10} = 10100_2\), а для исходного числа \(5_{10} = 101_2\) это число \(53_{10} = 110101_2\).
Укажите максимальное число \(R\), которое может быть результатом работы данного алгоритма, при условии, что \(N\) не больше \(12\). В ответе запишите это число в десятичное системе счисления.
Решение:
Python
def R(N):
b = bin(N)[2:]
if N % 2:
return int('1' + b + '01' , base=2)
else:
return int('10' + b , base=2)
a = []
for N in range(1, 13):
a.append(R(N))
print(max(a))
Python (решение с побитовыми операциями)
def digs(n):
return digs(n >> 1) + 1 if n else 0
def R(n):
if n & 1:
return ((n | 1 << digs(n)) << 2) | 1
return n | 2 << digs(n)
a = []
for N in range(1, 13):
a.append(R(N))
print(max(a))
Ответ: 109
ЕГЭ. ЕГКР. 21.12.2024
На вход алгоритма подаётся натуральное число \(M\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(M.\)
Далее эта запись обрабатывается по следующему правилу:
если число \(N\) делится на \(3,\) то к этой записи дописываются две последние троичные цифры;
если число \(N\) на \(3\) не делится, то вычисляется сумма цифр полученной троичной записи, эта сумма переводитсяв троичную систему счисления и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11_{10} = 102_3\) результатом является число \(10210_3 = 102_{10},\) а для исходного числа \(12_{10} = 110_3\) это число \(11010_3 = 111_{10}.\)
Укажите минимальное чётное число \(R,\) большее \(220,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(N):
s = ''
while N:
s = str(N % 3) + s
N //= 3
return s
def R(N):
tr = conv(N)
if N % 3 == 0:
tr += tr[-2:]
else:
tr += conv(sum(int(x) for x in tr))
return int(tr, 3)
print(min(R(x) for x in range(12, 200) if R(x) > 220 and R(x) % 2 == 0))
Ответ: 222
ЕГЭ. Статград. 01.04.2025-1
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр троичной записи числа \(N\) делится на \(3,\) то в этой записи два левых разряда заменяются на «\(112\)»;
б) если сумма цифр троичной записи числа \(N\) на \(3\) не делится, то эта сумма переводится в троичную систему счисления и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11 = 102_3\) результатом является число \(1122_3 = 44,\) а для исходного числа \(12 = 110_3\) результатом является число \(1102_3 = 38.\)
Укажите максимальное чётное число \(R,\) не превышающее \(679,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 3) + ans
n //= 3
return ans
def R(N):
tr = conv(N)
s = sum([int(x) for x in tr])
if s % 3 == 0:
tr = '112' + tr[2:]
else:
tr += conv(s)
return int(tr, 3)
#print(R(11), R(12))
print(max(R(x) for x in range(12, 700) if R(x) < 679 and R(x) % 2 == 0))
Ответ: 662
ЕГЭ. Шастин. 13.03.2025
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(3,\) то в начало этой записи дописываются две последние троичные цифры;
6) если число \(N\) на \(3\) не делится, то вычисляется сумма цифр полученной троичной записи, эта сумма переводится в троичную систему счисления и дописывается в начало числа.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11_{10} = 102_3\) результатом является число \(10102_3 = 92_{10},\) а для исходного числа \(12_{10} = 110_3\) это число \(10110_3 = 93_{10}.\) Укажите минимальное нечётное число \(R,\) большее \(418,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 3) + ans
n //= 3
return ans
def R(N):
tr = conv(N)
if N % 3 == 0:
tr = tr[-2:] + tr
else:
tr = conv(sum(int(x) for x in tr)) + tr
return int(tr, 3)
print(min(R(N) for N in range(10, 500) if R(N) % 2 and R(N) > 418))
Ответ: 423
ЕГЭ. Статград. 04.03.2025
Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Если в двоичной записи числа \(N\) нулей больше, чем единиц, то самый левый ноль заменяется на единицу. В противном случае самая правая единица заменяется на ноль.
Результат переводится в десятичную систему счисления.
Результатом работы алгоритма становится модуль разности исходного числа \(N\) и числа, полученного на предыдущем шаге.
Пример 1. Дано число \(N = 17.\) Алгоритм работает следующим образом.
Строим двоичную запись числа \(N:\) \(17_{10} = 10001_2.\)
В полученном двоичном числе нулей больше, заменяем самый левый ноль: \(10001 \to 11001.\)
Переводим в десятичную систему: \(11001_2 = 25_{10}.\)
Вычисляем модуль разности: \(| 17 – 25 | = 8.\)
Пример 2. Дано число \(N = 28.\) Алгоритм работает следующим образом.
Строим двоичную запись числа \(N:\) \(28_{10} = 11100_2.\)
В полученном двоичном числе нулей не больше, заменяем самую правую единицу: \(11100 \to 11000.\)
Переводим в десятичную систему: \(11000_2 = 24_{10}.\)
Вычисляем модуль разности: \(| 28 – 24 | = 4.\)
Результат работы алгоритма \(R = 4.\)
При каком наименьшем \(N,\) не превышающем \(10^9,\) в результате работы алгоритма получится наибольшее значение \(R?\)
Решение:
Исходное число \(N\) и число, полученное на втором шаге отличается только одним битом, там где единица была заменена на ноль или наоборот. Поэтому модуль разности исходного числа и числа, получившегося на втором шаге, будет равен \(2^n,\) где \(n\) — номер бита (счёт идет с нуля справа налево), где произошла замена. Так как \(2^{30} > 10^9,\) а \(2^{29} < 10^9,\) то число \(N\) должно быть максимум \(30\)- разрядное в двоичной системе счисления. Чтобы получить наибольшее \(R = 2^n,\) мы должны взять наибольшее из возможных \(n.\) Значит, \(n = 28.\) Так как замена нуля на единицу должна произойти в наибольшем разряде, то в двоичной записи количество нулей числа \(N\) должно превышать количество единиц. Учитывая требование, чтобы \(N\) при этом было минимальным, получаем, что \(N = 2^{29} = 536870912.\)
Ответ: 536870912
ЕГЭ. Статград. 17.12.2024-1
Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\) без ведущих нулей.
Подсчитывается количество единиц и количество нулей в полученной двоичной записи. Эти числа переводятся в двоичную систему и записываются друг за другом без использования ведущих нулей: сначала количество единиц, затем количество нулей.
Результатом работы алгоритма становится десятичная запись полученного числа \(R.\)
Пример. Дано число \(N = 17.\) Алгоритм работает следующим образом.
Строим двоичную запись: \(17_{10} = 10001_2.\)
В полученном двоичном числе две единицы и три нуля. Переводим в двоичную систему: \(2_{10} = 10_2, \, 3_{10} = 11_2.\) Записываем подряд: \(1011.\)
Переводим в десятичную систему: \(1011_2 = 11_{10}.\)
Результат работы алгоритма \(R = 11.\)
Определите минимальное число \(N,\) для которого результатом работы данного алгоритма будет \(R = 214.\)
Решение:
Простым перебором эта задача решается долго. Пойдём другим путём. В двоичном виде \(214_{10} = 11010110_2.\) Так как мы хотим получить минимальное число, то количество разрядов в числе \(R\) должно быть минимальным, причём единиц должно быть меньше, чем нулей. Значит, количество единиц должно быть \(110_2 = 6_{10},\) а нулей — \(10110_2 = 22_{10}.\) Составим из них минимальное число. Для этого все единицы за исключением одной отправим в младшие разряды.
>>> s = '1' + '0' * 22 + '1' * 5
>>> int(s, 2)
134217759
Это ответ. На всякий случай проверим его программой:
def R(N):
bn = f'{N:b}'
d = f'{bn.count("1"):b}' + f'{bn.count("0"):b}'
return int(d, 2)
for N in range(134217759, 134217759 + 5):
if R(N) == 214:
print(N)
break
Ответ: 134217759
ЕГЭ. Статград. 28.01.2025-1
Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N.\)
В полученной записи все нули заменяются на двойки, все двойки — на нули. Из полученного числа удаляются ведущие нули.
Результат переводится в десятичную систему счисления.
Результатом работы алгоритма становится модуль разности исходного числа \(N\) и числа, полученного на предыдущем шаге.
Пример. Дано число \(N = 35.\) Алгоритм работает следующим образом.
Строим троичную запись числа \(N\): \(35_{10} = 1022_3.\)
Заменяем цифры и удаляем ведущие нули: \(1022 \to 1200.\)
Переводим в десятичную систему: \(1200_3 = 45_{10}.\)
Вычисляем модуль разности: \(| 35 - 45 | = 10.\)
Результат работы алгоритма \(R = 10.\)
При каком наименьшем \(N\) в результате работы алгоритма получится \(R = 1~864~246?\)
Решение:
Python
def conv(n):
s = ''
while n:
s = str(n % 3) + s
n //= 3
return s
def R(N):
tr = conv(N)
tr = tr.replace('0', '9')
tr = tr.replace('2', '0')
tr = tr.replace('9', '2')
return abs(N - int(tr, 3))
for N in range(10, 10_000_000):
if R(N) == 1_864_246:
print(N)
break
Ответ: 3 323 607
ЕГЭ. Статград. 24.10.2024-2
Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
Если число \(N\) чётное, то к двоичной записи слева дописываются цифры \(11\).
В противном случае (число \(N\) нечётное) к двоичной записи слева дописывается цифра \(1\), а справа – цифры \(10\).
Результатом работы алгоритма становится десятичная запись полученного числа \(R\).
Пример. Дано число \(N = 13\). Алгоритм работает следующим образом.
Строим двоичную запись: \(13_{10} = 1101_{2}\) .
Число \(13\) нечётно. Дописываем \(1\) слева и \(10\) справа, получаем \(1110110_2 = 118_{10}\) .
Результат работы алгоритма \(R = 118.\)
Укажите максимальное число \(R\), которое может быть результатом работы данного алгоритма, при условии, что \(N\) принадлежит отрезку \([123~456~789; \, 456~789~012].\)
Решение:
Python
def R(N):
bn = bin(N)[2:]
if N % 2 == 0:
ans = '11' + bn
else:
ans = '1' + bn + '10'
return int(ans, 2)
print(max(R(456_789_011), R(456_789_012)))
Ответ: 3 974 639 694
ЕГЭ. Статград. 24.10.2024-1
Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
Если число \(N\) чётное, то к двоичной записи слева дописываются цифры \(11\).
В противном случае (число \(N\) нечётное) к двоичной записи слева дописывается цифра \(1\), а справа – цифры \(10\).
Результатом работы алгоритма становится десятичная запись полученного числа \(R\).
Пример. Дано число \(N = 13\). Алгоритм работает следующим образом.
Строим двоичную запись: \(13_{10} = 1101_{2}\) .
Число \(13\) нечётно. Дописываем \(1\) слева и \(10\) справа, получаем \(1110110_2 = 118_{10}\) .
Результат работы алгоритма \(R = 118.\)
Укажите максимальное число \(R\), которое может быть результатом работы данного алгоритма, при условии, что \(N\) принадлежит отрезку \([234~567~890; \, 567~891~234].\)
Решение:
Python
def R(N):
bn = bin(N)[2:]
if N % 2 == 0:
ans = '11' + bn
else:
ans = '1' + bn + '10'
return int(ans, 2)
print(max(R(567_891_233), R(567_891_234)))
Ответ: \(6~566~532~230\)
ЕГЭ. Шастин. 9.2.2025
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится восьмеричная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) чётное, то в этой записи все нечётные цифры меняются на «\(2\)»;
6) если число \(N\) нечётное, то первая и последняя цифры меняются на «\(3\)».
Полученная таким образом запись является восьмеричной записью искомого числа \(R.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(9 = 11_8\) результатом является число \(33_8 = 27,\) а для исходного числа \(12 = 14_8\) это число \(24_8 = 20.\)
Укажите максимальное число \(R,\) меньшее \(300,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
noct = oct(N)[2:]
if N % 2 == 0:
for ch in ('1', '3', '5', '7'):
noct = noct.replace(ch, '2')
else:
noct = '3' + noct[1:-1] + '3'
return int(noct, 8)
print(max(R(i) for i in range(400) if R(i) < 300))
Ответ: 294
ЕГЭ. Шастин. 19.01.2025
(Д. Бахтиев) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу.
если количество значащих нулей в этой записи чётно, то к ней слева и справа дописываются по одной единице.
иначе, если количество значащих нулей в этой записи нечётно, то слева к этой записи дописывается \(10\).
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(6 = 110_2\) результатом является число \(10110_2 = 22.\)
Укажите максимальное число \(R\), меньшее \(100,\) которое могло получиться в результате выполнения данного алгоритма.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = '1' + bn + '1' if bn.count('0') % 2 == 0 else '10' + bn
return int(bn, 2)
print(max([R(x) for x in range(1, 1000) if R(x) < 100]))
Ответ: 97
ЕГЭ. Шастин. 18.12.2024
(Д. Бахтиев) Автомат получает на вход натуральное четырёхзначное число. По этому числу строится новое число по следующим правилам:
Вычисляются произведения первой цифры со второй, третьей и четвёртой.
Из полученных произведений выбирают два наибольших и записывают в порядке неубывания (без разделителей).
Пример. Исходное число: \(2345.\)
Произведения:
\(2 \cdot 3 = 6;\)
\(2 \cdot 4=8;\)
\(2 \cdot 5 = 10.\)
Результат \(810.\)
Укажите наименьшее число, при обработке которого автомат выдаст число \(5472.\)
Решение:
Python
def R(N):
digs = [int(x) for x in str(N)]
prod = sorted([digs[0] * x for x in digs[1:]])
return f'{prod[-2]}{prod[-1]}'
for x in range(1000, 10000):
if R(x) == '5472':
print(x)
break
Ответ: 9068
ЕГЭ. Шастин. 30.11.2024
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится четверичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
если число \(N\) делится на \(4\), то слева к четверичной записи приписывается «2», а справа «03».
если число \(N\) на \(4\) не делится, то остаток от деления на \(4\) умножается на \(5\), переводится в четверичную запись и дописывается в конец четверичной записи.
Полученная таким образом запись является четверичной записью искомого числа \(R.\)
Результат переводится в десятичную запись и выводится на экран.
Например, для исходного числа \(11 = 23_4\) результатом является число \(2333_4 = 191.\)
Укажите максимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), не превышающее \(567.\)
Решение:
Python
def conv(N):
ans = ''
while N:
ans = str(N % 4) + ans
N //= 4
return ans
def R(N):
s = conv(N)
if N % 4 == 0:
s = '2' + s + '03'
else:
s += str(conv(N % 4 * 5))
return int(s, 4)
a = [N for N in range(10, 570) if R(N) < 568]
print(max(a))
Ответ: 34
ЕГЭ. Шастин. 6.11.2024
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом
Строится двоичная запись числа \(N\).
далее эта запись обрабатывается пос следующему правилу:
если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(0\), а затем два левых разряда заменяются на \(10\);
если сумма цифр в двоичной записи нечётная, то к этой записи справа дописывается \(1\), а затем два левых разряда заменяются на \(11\).
Полученна ятаким образом запись является двоичной записью искомого числа \(R\). Например, дл яисходного числа \(6_{10} = 110_2\) результатом является число \(1000_2 = 8_{10}\), а для исходного числа \(4_{10} = 100_2\) результатом является число \(1101_2 = 13_{10}\). Укажите минимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), большее \(171\). В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = bin(N)[2:]
if bn.count('1') % 2 == 0:
bn = bn + '0'
bn = '10' + bn[2:]
else:
bn = bn + '1'
bn = '11' + bn[2:]
return int(bn, 2)
#print(R(6), R(4))
for N in range(7, 200):
if R(N) > 171:
print(N)
break
Ответ: 64
ЕГЭ. Шастин. 18.10.2024
(Д. Бахтиев) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
если количество цифр двоичной записи числа чётное, то к этой записи справа дописывается \(1\);
если количество цифр двоичной записи нечётное, то к этой записи слева дописывается \(1\), а справа \(0\);
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(3 = 11_2\) результатом является число \(111_2 = 7\).
Укажите минимальное число \(R\), большее \(666\), которое могло получиться в результате работы данного алгоритма.
В ответе запишите это число в десятичной системе счисления.
Решение через строки и через побитовые операции:
Решение через строки.
Python
def R2(n):
bn = bin(n)[2:]
if len(bn) % 2:
ans = '1' + bn + '0'
else:
ans = bn + '1'
return int(ans, 2)
ans = []
for n in range(4, 1000):
x = R2(n)
if x > 666:
ans.append(x)
print(min(ans))
Решение через побитовые операции
Python
def q_dig(n):
q = 0
while n:
q += 1
n >>= 1
return q
def R(n):
nums = q_dig(n)
if nums % 2:
return (1 << (nums + 1)) + (n << 1)
else:
return (n << 1) + 1
ans = []
for n in range(4, 1000):
x = R(n)
if x > 666:
ans.append(x)
print(min(ans))
Ответ: 1025
ЕГЭ. Шастин. 4.10.2024
(Д. Бахтиев) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
если сумма цифр троичной записи числа чётная, то к этой записи слева дописывается \(1\), а справа \(2\);
если сумма цифр троичной записи числа нечётная, то к этой записи слева дописывается \(2\), а справа \(0\);
Полученная таким образом запись является троичной записью искомого числа \(R\).
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(4 = 11_3\) результатом является число \(1112_3 = 41\).
Укажите минимальное число \(R\), большее \(100\), которое могло получиться в результате работы данного алгоритма.
В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
s = ''
while n:
s = str(n % 3) + s
n //= 3
return s
def R(N):
tr = conv(N)
if sum(int(x) for x in tr) % 2 == 0:
ans = '1' + tr + '2'
else:
ans = '2' + tr + '0'
return int(ans, 3)
arr = [R(x) for x in range(5, 50) if R(x) > 100]
print(min(arr))
Ответ: 113
ЕГЭ. Шастин. 19.09.2024
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом
Строится двоичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
если число \(N\) делится на \(5\), то в начало записи дописываются три первые двоичные цифры;
если число \(N\) на \(5\) не делится, то остаток от деления умножается на \(5\), переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(12 = 1100_2\) результатом является число \(11001010_2 = 202\).
Укажите максимальное нечётное число \(N\), после обработки которого с помощью этого алгоритма получится число \(R\), меньшее чем \(313\).
Решение:
Python
def R(N):
b = bin(N)[2:]
if N % 5:
tmp = b + bin(N % 5 * 5)[2:]
else:
tmp = b[:3] + b
return int(tmp, 2)
for N in range(100, 10, -1):
if N % 2 and R(N) < 313:
print(N)
break
Ответ: 35
ЕГЭ. Шастин. 29.08.2024
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр двоичной записи числа чётная, то к этой записи справа дописывается \(11\);
б) если сумма цифр двоичной записи числа нечётная, то к этой записи справа дописывается \(01\);
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(4 = 100_2\) результатом является число \(10001_2 = 17\), а для исходного числа \(5 = 101_2\) это число \(10111_2 = 23\).
Укажите минимальное число \(R\), большее \(61\), которое могло получиться в результате работы данного алгоритма.
В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
t = bin(N)[2:]
q = t.count('1')
t += '01' if q % 2 else '11'
return int(t, 2)
ans = 10*10
for N in range(6, 100):
if R(N) > 61:
ans = min(ans, R(N))
print(ans)
Ответ: 63
ЕГЭ. Поляков-8037
(О. Лысенков) На вход алгоритма подаётся неотрицательное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится \(19\)-ричная запись числа \(N.\)
Полученная запись преобразуется по следующему алгоритму:
а) если сумма значений цифр \(19\)-ричной записи чётная, то последняя цифра перемещается в начало, а справа дописывается \(1;\)
б) если сумма значений цифр \(19\)-ричной записи нечётная, то первая цифра перемещается в конец, а слева дописывается \(B.\)
Полученная таким образом запись является \(19\)-ричной записью искомого числа \(R.\) Найдите количество чисел \(N,\) принадлежащих отрезку \([1; \,10000],\) для которых результат работы алгоритма кратен либо \(5,\) либо \(3,\) но не обоим числам одновременно.
Решение:
Python
def conv(n):
if not n:
return '0'
ans = ''
alph = '0123456789ABCDEFGHI'
while n:
ans = alph[n % 19] + ans
n //= 19
return ans
def R(N):
d = conv(N)
if sum(int(x, 19) for x in d) % 2 == 0:
return int(d[-1] + d[:-1] + '1', 19)
return int('B' + d[1:] + d[0], 19)
q = 0
for N in range(1, 10_001):
r = R(N)
q += (r % 5 == 0 or r % 3 == 0) and r % 15 != 0
print(q)
Ответ: 4002
ЕГЭ. Поляков-8036
(О. Лысенков) На вход алгоритма подаётся неотрицательное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится \(20\)-ричная запись числа \(N.\)
Полученная запись преобразуется по следующему алгоритму:
а) если запись содержит чётное число разрядов, то число делится посередине на две равные части, вначале записывается вторая часть, а после — первая;
б) если получившаяся запись содержит нечётное число разрядов, то справа дописывается последняя цифра \(20\)-ричной записи числа \(N.\)
Полученная таким образом запись является \(20\)-ричной записью искомого числа \(R.\) Например, для исходного числа \(1\) результат работы алгоритма – \(21,\) а для \(20\) результат работы алгоритма – \(1.\) Укажите минимальное число \(N\) такое, что результат работы алгоритма превышает \(190.\)
Решение:
Python
def conv(n):
if not n:
return '0'
ans = ''
alph = '0123456789ABCDEFGHIJ'
while n:
ans = alph[n % 20] + ans
n //= 20
return ans
def R(N):
ns = conv(N)
if len(ns) % 2 == 0:
return int(ns[len(ns) // 2 :] + ns[:len(ns) // 2], 20)
return int(ns + ns[-1], 20)
#print(R(1), R(20))
for N in range(1, 1000):
if R(N) > 190:
print(N)
break
Ответ: 10
ЕГЭ. Поляков-8035
(О. Лысенков) На вход алгоритма подаётся неотрицательное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится \(20\)-ричная запись числа \(N.\)
Каждая цифра этой записи увеличивается на \(1,\) а если числовое значение цифры уже равно \(19,\) то такая цифра заменяется на \(0.\)
В начало числа записывается последняя цифра двоичной записи числа \(N.\)
Из записи удаляются незначащие нули.
Полученная таким образом запись является \(20\)-ричной записью искомого числа \(R.\) Например, для исходного числа \(265 = D5_{20}\) результатом является число \(1E6_{20} = 686,\) а для исходного числа \(66 = 36_{20}\) результатом является число \(47_{20} = 87.\) Найдите наименьшее число \(N,\) такое что \(20\)-ричная запись результата работы алгоритма \(R\) содержит не менее трёх разрядов и хотя бы два из них записываются латинскими буквами.
Решение:
Python
def conv(n):
if not n:
return '0'
ans = ''
alph = '0123456789ABCDEFGHIJ'
while n:
ans = alph[n % 20] + ans
n //= 20
return ans
def R(N):
alph = '0123456789ABCDEFGHIJ'
d = [alph[(int(x, 20) + 1) % 20] for x in conv(N)]
ans = str(N % 2) + ''.join(d)
return conv(int(ans, 20))
#print(R(265), R(66))
for N in range(1000):
ns = R(N)
if len(ns) > 2 and sum(x in 'ABCDEFGHIJ' for x in ns) > 1:
print(N)
break
Ответ: 189
Задание 5. Информатика. ЕГЭ. Поляков-8034
(О. Лысенков) На вход алгоритма подаётся неотрицательное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Число переводится в семеричную систему счисления.
Полученная запись преобразуется по следующему алгоритму:
а) если \(N\) чётное, то справа дописывается \(1,\) а слева — \(52;\)
б) если \(N\) нечётное, то первая и последняя цифры в числе меняются местами, а затем справа дописывается \(15.\)
Из записи удаляются незначащие нули.
Полученная таким образом запись является семеричной записью искомого числа \(R.\) Укажите максимальное число \(N,\) не превышающее \(1000,\) после обработки которого с помощью этого алгоритма получается число \(R,\) семеричная запись которого содержит ровно \(4\) значащих разряда.
Решение:
Python
def conv(n):
if not n:
return '0'
ans = ''
alph = '0123456'
while n:
ans = alph[n % 7] + ans
n //= 7
return ans
def R(N):
q = conv(N)
if N % 2 == 0:
q = '52' + q + '1'
else:
q = q[-1] + q[1:-1] + q[0] + '15'
return conv(int(q, 7))
for N in range(1000, -1, -1):
if len(R(N)) == 4:
print(N)
break
Ответ: 721
Задание 5. Информатика. ЕГЭ. Поляков-8033
(О. Лысенков) На вход алгоритма подаётся неотрицательное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Число переводится в пятеричную систему счисления.
Полученная запись преобразуется по следующему алгоритму:
а) если \(N\) чётное, то справа дописывается утроенное значение младшего разряда пятеричной записи в пятеричной системе счисления;
б) если \(N\) нечётное, то первая и последняя цифры в числе меняются местами, а затем справа дописывается \(1.\)
Из записи удаляются незначащие нули.
Полученная таким образом запись является пятеричной записью искомого числа \(R.\) Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) пятеричная запись которого содержит ровно \(4\) значащих нуля.
Решение:
Python
def conv(n):
if not n:
return '0'
ans = ''
alph = '01234'
while n:
ans = alph[n % 5] + ans
n //= 5
return ans
def R(N):
q = conv(N)
if N % 2 == 0:
q += conv(int(q[-1]) * 3)
else:
q = q[-1] + q[1:-1] + q[0] + '1'
return conv(int(q, 5))
for N in range(300):
if R(N).count('0') == 4:
print(N)
break
Ответ: 250
Задание 5. Информатика. ЕГЭ. Поляков-8032
(О. Лысенков) На вход алгоритма подаётся неотрицательное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Число переводится в четверичную систему счисления.
Полученная запись преобразуется по следующему алгоритму:
а) если число чётное, то слева дописывается \(12,\) а справа — утроенное значение младшего разряда четверичной записи в четверичной системе счисления;
б) если число нечётное, то слева дописывается \(13,\) а справа — \(21.\)
Полученная таким образом запись является четверичной записью искомого числа \(R.\) Укажите минимальное значение большее \(50,\) которое может являться результатом работы автомата.
Решение:
Python
def conv(n):
if not n:
return '0'
ans = ''
alph = '0123'
while n:
ans = alph[n % 4] + ans
n //= 4
return ans
def R(N):
q = conv(N)
if N % 2 == 0:
q = '12' + q + conv(int(q[-1]) * 3)
else:
q = '13' + q + '21'
return int(q, 4)
print(min(R(N) for N in range(300) if R(N) > 50))
Ответ: 96
Задание 5. Информатика. ЕГЭ. Поляков-7891
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Подсчитывается количество единиц и количество нулей в полученной двоичной записи.
Эти числа переводятся в двоичную систему и записываются друг за другом без использования ведущих нулей: сначала количество нулей, затем количество единиц.
Полученная таким образом запись является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) для которого результатом работы алгоритма будет число \(123.\) В ответе запишите это число в десятичной системе счисления.
Решение:
В двоичном виде \(123_{10} = 1111011_2.\) Так как мы хотим получить минимальное число, то количество разрядов в числе \(R\) должно быть минимальным. Значит, количество единиц должно быть \(1011_2 = 11_{10},\) а нулей — \(111_2 = 7_{10}.\) Составим из них минимальное число. Для этого все единицы за исключением одной отправим в младшие разряды.
>>> s = '1' + '0' * 7 + '1' * 10
>>> int(s, 2)
132095
Ответ: 132095
Задание 5. Информатика. ЕГЭ. Поляков-7890
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Подсчитывается количество единиц и количество нулей в полученной двоичной записи.
Эти числа переводятся в двоичную систему и записываются друг за другом без использования ведущих нулей: сначала количество единиц, затем количество нулей.
Полученная таким образом запись является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) для которого результатом работы алгоритма будет число \(314.\) В ответе запишите это число в десятичной системе счисления.
Решение:
В двоичном виде \(314_{10} = 100111010_2.\) Так как мы хотим получить минимальное число, то количество разрядов в числе \(R\) должно быть минимальным. Значит, количество единиц должно быть \(10011_2 = 19_{10},\) а нулей — \(1010_2 = 10_{10}.\) Составим из них минимальное число. Для этого все единицы за исключением одной отправим в младшие разряды.
>>> s = '1' + '0' * 10 + '1' * 18
>>> int(s, 2)
268697599
Ответ: 268697599
Задание 5. Информатика. ЕГЭ. Поляков-7889
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Подсчитывается количество единиц и количество нулей в полученной двоичной записи.
Эти числа переводятся в двоичную систему и записываются друг за другом без использования ведущих нулей: сначала количество единиц, затем количество нулей.
Полученная таким образом запись является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) для которого результатом работы алгоритма будет число \(156.\) В ответе запишите это число в десятичной системе счисления.
Решение:
В двоичном виде \(156_{10} = 10011100_2.\) Так как мы хотим получить минимальное число, то количество разрядов в числе \(R\) должно быть минимальным. Значит, количество единиц должно быть \(1001_2 = 9_{10},\) а нулей — \(1100_2 = 12_{10}.\) Составим из них минимальное число. Для этого все единицы за исключением одной отправим в младшие разряды.
>>> s = '1' + '0' * 12 + '1' * 8
>>> int(s, 2)
1048831
Ответ: 1048831
Задание 5. Информатика. ЕГЭ. Поляков-7888
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число чётное, то к двоичной записи числа слева дописывается \(10;\)
б) если число нечётное, то к двоичной записи числа слева дописывается \(1\) и справа дописывается \(01.\)
Полученная таким образом запись (в ней на два или три разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Например, для исходного числа \(4 = 100_2\) результатом является число \(20 = 10100_2,\) а для исходного числа \(5 = 101_2\) это число \(53 = 110101_2.\) Укажите максимальное число \(R,\) не превышающее \(1234567,\) которое может быть результатом работы данного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn[-1] == '0':
bn = '10' + bn
else:
bn = '1' + bn + '01'
return int(bn, 2)
print(max(R(x) for x in range(100_000, 1_000_000) if R(x) <= 1234567))
Ответ: 1048573
Задание 5. Информатика. ЕГЭ. Поляков-7887
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число чётное, то к двоичной записи числа слева дописывается \(10;\)
б) если число нечётное, то к двоичной записи числа слева дописывается \(1\) и справа дописывается \(01.\)
Полученная таким образом запись (в ней на два или три разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Например, для исходного числа \(4 = 100_2\) результатом является число \(20 = 10100_2,\) а для исходного числа \(5 = 101_2\) это число \(53 = 110101_2.\) Укажите максимальное число \(R,\) которое может быть результатом работы данного алгоритма, при условии, что \(N\) не больше \(1234567.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn[-1] == '0':
bn = '10' + bn
else:
bn = '1' + bn + '01'
return int(bn, 2)
print(max(R(x) for x in range(1_000_000, 1234568)))
Ответ: 13326877
Задание 5. Информатика. ЕГЭ. Поляков-7766
(О. Лысенков) На вход алгоритма подается целое неотрицательное число \(N.\) Алгоритм строит по нему новое число \(R\) по следующим образом:
Число \(N\) переводится в систему счисления с основанием \(30.\)
Вычисляет сумма значений цифр данного числа в \(30\)-ричной системе счисления.
Число \(R\) определяется как полученная сумма, умноженная на значение последней десятичной цифры числа \(N.\)
Найдите количество чисел \(N,\) меньших \(10^7,\) для которых соответствующее значение \(R\) — не простое число.
Решение:
Если число \(N\) в десятичной записи не заканчивается на \(1,\) то \(R(N)\) — число не простое (составное). Поэтому, чтобы ответить на поставленный в задаче вопрос, нужно от общего количества целых неотрицательных чисел, не превышающих \(10^7,\) которых ровно \(10^7,\) отнять количество таких \(N,\) которые оканчиваются на \(1\) и для которых \(R(N)\) — простое число.
Python
def is_prime(x):
if x in (0, 1):
return False
if x in (2, 3):
return True
for d in range(2, int(x**0.5) + 1):
if x % d == 0:
return False
return True
def R(N):
if N == 0:
return 0
alph = '0123456789ABCDEFGHIJKLNMOPQRSTUVWXYZ'
ans = ''
last_dig = N % 10
while N:
ans = alph[N % 30] + ans
N //= 30
return sum(int(x, 30) for x in ans) * last_dig
print(10**7 - sum(is_prime(R(x)) for x in range(1, 10**7, 10)))
Ответ: 9771349
Задание 5. Информатика. ЕГЭ. Поляков-7763
(О. Лысенков) На вход алгоритма подается целое неотрицательное число \(N.\) Алгоритм строит по нему новое число \(R\) по следующим образом:
Число \(N\) переводится в систему счисления с основанием \(30.\)
Вычисляет сумма значений цифр данного числа в \(30\)-ричной системе счисления.
Число \(R\) определяется как полученная сумма, умноженная на значение последней десятичной цифры числа \(N.\)
Найдите количество чисел \(N,\) меньших \(1000,\) для которых соответствующее значение \(R\) — не простое число.
Решение:
Python
def is_prime(x):
if x in (0, 1):
return False
if x in (2, 3):
return True
for d in range(2, int(x**0.5) + 1):
if x % d == 0:
return False
return True
def R(N):
if N == 0:
return 0
alph = '0123456789ABCDEFGHIJKLNMOPQRSTUVWXYZ'
ans = ''
last_dig = N % 10
while N:
ans = alph[N % 30] + ans
N //= 30
return sum(int(x, 30) for x in ans) * last_dig
print(sum(not is_prime(R(x)) for x in range(10**3)))
Ответ: 970
Задание 5. Информатика. ЕГЭ. Поляков-7667
*(П. Финкель) На вход алгоритма подаётся шестизначное натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Число \(N\) переводится в систему счисления с основанием \(19.\)
Далее эта запись обрабатывается по следующему правилу:
а) согласные буквы \((B, \, C, \, D, \, F, \, G, \, H)\) заменяются на \(5;\)
б) в начало полученной записи дописывается остаток от деления числа \(N\) на \(19\) в \(19\)-ричной системе счисления;
в) две последние цифры записи переставляются в начало (например, из строки \(12345\) получается \(45123).\)
Действия а)-в) в п. 2. повторяются еще раз.
Полученная таким образом запись является записью искомого числа \(R\) в системе счисления с основанием \(19.\) Укажите максимальное число \(R\) с суммой цифр, кратной \(7,\) которое может быть получено в результате работы алгоритма. Запишите его в ответе в десятичной системе счисления.
Решение:
Python
def conv(x):
alph = '0123456789ABCDEFGHI'
ans = ''
while x:
ans = alph[x % 19] + ans
x //= 19
return ans
def R(x):
tmp = conv(x)
for _ in range(2):
for ch in 'BCDFGH':
tmp = tmp.replace(ch, '5')
tmp = conv(x % 19) + tmp
tmp = tmp[-2:] + tmp[:-2]
return tmp
max_R = 0
for N in range(100_000, 1_000_000):
t = R(N)
if sum(int(x, 19) for x in t) % 7 == 0:
max_R = max(max_R, int(t, 19))
print(max_R)
Ответ: 893871724
Задание 5. Информатика. ЕГЭ. Поляков-7666
*(П. Финкель) На вход алгоритма подаётся пятизначное натуральное число \(N.\) Алгоритм строит по нему новое число R следующим образом:
Число \(N\) переводится в двадцатеричную систему счисления.
Далее эта запись обрабатывается по следующему правилу:
а) гласные буквы \((A, \, E, \, I)\) заменяются на \(1;\)
б) в конец полученной записи дописывается остаток от деления числа \(N\) на \(20\) в двадцатеричной системе счисления;
в) первая цифра переставляется в конец записи.
Действия а)-в) в п. 2. повторяются еще раз.
Полученная таким образом запись является записью искомого числа \(R\) в двадцатеричной системе счисления. Укажите максимальное число \(R,\) кратное \(2030,\) которое может быть получено в результате работы алгоритма. Запишите его в ответе в десятичной системе счисления.
Решение:
Python
def conv(x):
alph = '0123456789ABCDEFGHIJ'
ans = ''
while x:
ans = alph[x % 20] + ans
x //= 20
return ans
def R(x):
tmp = conv(x)
for _ in range(2):
for ch in 'AEI':
tmp = tmp.replace(ch, '1')
tmp += conv(x % 20)
tmp = tmp[1:] + tmp[0]
return int(tmp, 20)
max_R = 0
for N in range(10_000, 100_000):
tmp = R(N)
if tmp % 2030 == 0:
max_R = max(max_R, tmp)
print(max_R)
Ответ: 63656740
Задание 5. Информатика. ЕГЭ. Поляков-7650
*(Н. Сафронов) На вход алгоритма подаётся натуральное четырехзначное число \(N,\) в десятичной записи которого есть как чётные, так и нечётные цифры (к другим числам алгоритм неприменим). Алгоритм строит по нему новое число \(R\) следующим образом:
Если в числе \(N\) четных чисел больше, то вычисляется сумма всех четных цифр числа \(N,\) иначе вычисляется сумма всех нечетных цифр числа \(N.\)
Если на предыдущем шаге получилось четное число, то к нему справа приписывается максимальная четная цифра числа \(N,\) иначе слева приписывается минимальная нечетная цифра числа \(N.\)
Сколько существует чисел \(N,\) для которых результат работы автомата \(R\) равен \(111?\)
Решение:
Python
def R(N):
x = N
odd = []
even = []
while N:
r = N % 10
if r % 2:
odd.append(r)
else:
even.append(r)
N //= 10
if len(odd) == 0 or len(even) == 0:
return -1
else:
if len(even) > len(odd):
x = sum(even)
else:
x = sum(odd)
if x % 2 == 0:
s = str(x) + str(max(even))
else:
s = str(min(odd)) + str(x)
return int(s)
N = 0
for n in range(1000, 10_000):
N += int(R(n) == 111)
print(N)
Ответ: 228
Задание 5. Информатика. ЕГЭ. Поляков-7649
*(Н. Сафронов) На вход алгоритма подаётся натуральное четырехзначное число \(N,\) в десятичной записи которого есть как чётные, так и нечётные цифры (к другим числам алгоритм неприменим). Алгоритм строит по нему новое число \(R\) следующим образом:
Из всех четных цифр числа \(N\) составляется наибольшее число.
Из всех нечетных цифр числа \(N\) составляется наименьшее число.
Вычисляется сумма двух чисел, построенных в результате шагов 1 и 2.
Укажите максимальное число \(R,\) которое может быть результатом работы данного алгоритма и в котором все цифры десятичной записи идут в порядке убывания.
Решение:
Python
def R(N):
x = N
odd = []
even = []
while N:
r = N % 10
if r % 2:
odd.append(r)
else:
even.append(r)
N //= 10
if len(odd) == 0 or len(even) == 0:
return -1
else:
even.sort(reverse=True)
odd.sort()
n1 = sum(a * 10**b for a, b in zip(even, range(len(even) - 1, -1, -1)))
n2 = sum(a * 10**b for a, b in zip(odd, range(len(odd) - 1, -1, -1)))
return n1 + n2
mx_R = 0
for n in range(1000, 10000):
t = R(n)
if t != -1:
s = str(t)
if all(x > y for x, y in zip(s, s[1:])):
mx_R = max(mx_R, t)
print(mx_R)
Ответ: 875
Задание 5. Информатика. ЕГЭ. Поляков-7540
(ЕГЭ-2024) На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа ещё два разряда по следующему правилу:
складываются все цифры двоичной записи числа \(N,\) и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
над этой записью производятся те же действия – справа дописывается остаток от деления суммы её цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\)
Укажите минимальное число \(R,\) которое превышает число \(123\) и может являться результатом работы данного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bn + str(bn.count('1') % 2)
bn = bn + str(bn.count('1') % 2)
return int(bn, 2)
print(min(R(N) for N in range(1, 100) if R(N) > 123))
Ответ: 126
Задание 5. Информатика. ЕГЭ. Поляков-7539
(ЕГЭ-2024) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа N.
К этой записи дописываются справа ещё два разряда по следующему правилу:
складываются все цифры двоичной записи числа \(N,\) и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
над этой записью производятся те же действия – справа дописывается остаток от деления суммы её цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(R,\) которое превышает число \(75\) и может являться результатом работы данного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bn + str(bn.count('1') % 2)
bn = bn + str(bn.count('1') % 2)
return int(bn, 2)
print(min(R(N) for N in range(1, 100) if R(N) > 75))
Ответ: 78
Задание 5. Информатика. ЕГЭ. Поляков-7514
(ЕГЭ-2024) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
если число \(N\) чётное, то к этой записи слева дописывается 10;
если число \(N\) нечётное, то к этой записи слева дописывается \(1,\) а справа дописывается \(01.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\) Например, для исходного числа \(4 = 100_2\) результатом является \(10010_2 = 18,\) а для исходного числа \(5 = 101_2\) результатом является \(110101_2 = 53.\) Укажите максимальное число \(R,\) которое может быть результатом работы алгоритма при условии, что \(N\) не больше \(12.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
bn += '10'
else:
bn = '1' + bn + '01'
return int(bn, 2)
print(max(R(N) for N in range(1, 13)))
Ответ: 109
Задание 5. Информатика. ЕГЭ. Поляков-7458
(ЕГЭ-2024) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
a) если сумма цифр двоичной записи числа чётная, то к этой записи справа дописывается \(0\), а затем два левых разряда заменяются на \(10\);
б) если сумма цифр двоичной записи числа нечётная, то к этой записи справа дописывается \(1\), а затем два левых разряда заменяются на \(11\).
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(6 = 110_2\) результатом является число \(1000_2 = 8\), а для исходного числа \(4 = 100_2\) это число \(1101_2 = 13\).
Укажите максимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), меньшее \(35\).
В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = bin(N)[2:]
if bn.count('1') % 2 == 0:
tmp = '10' + bn[2:] + '0'
else:
tmp = '11' + bn[2:] + '1'
return int(tmp, base=2)
#print(R(6), R(4))
a = []
for N in range(6, 1000):
if R(N) < 35:
a.append(N)
print(a[-1])
Ответ: 24
Задание 5. Информатика. ЕГЭ. Поляков-7456
(ЕГЭ-2024) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
если сумма цифр двоичной записи чётная, то к этой записи справа дописывается \(0,\) а два левых разряда заменяются на \(10;\)
если сумма цифр двоичной записи нечётная, то к этой записи справа дописывается \(1,\) а два левых разряда заменяются на \(11.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\) Например, для исходного числа \(6 = 110_2\) результатом является \(1000_2 = 8,\) а для исходного числа \(4 = 100_2\) результатом является \(1101_2 = 13.\) Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) большее \(50.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('1') % 2 == 0:
bn = '10' + bn[2:] + '0'
else:
bn = '11' + bn[2:] + '1'
return int(bn, 2)
for N in range(4, 50):
if R(N) > 50:
print(N)
break
Ответ: 19
Задание 5. Информатика. ЕГЭ. Поляков-7407
(Е. Джобс) На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
Строится запись числа \(N\) в троичной системе счисления.
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) четное, то слева дописывается \(2\), а справа — удвоенное значение младшего разряда в троичной системе счисления;
б) если число \(N\) нечетное, то справа дописывается \(2\), а слева — удвоенное значение старшего разряда в троичной системе счисления.
Полученная таким образом запись является троичной записью искомого числа \(R\).
Например, для исходного числа \(14 = 112_3\) результатом является \(211211_3 = 616\). Укажите минимальное значение большее \(100\), которое может получиться в результате работы алгоритма.
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 3) + ans
n //= 3
return ans
def R(N):
tr = conv(N)
if N % 2 == 0:
tmp = '2' + tr + conv(int(tr[-1]) * 2)
else:
tmp = conv(int(tr[0]) * 2) + tr + '2'
return int(tmp, base=3)
a = [R(N) for N in range(1, 100) if R(N) > 100]
print(min(a))
Ответ: 131
Задание 5. Информатика. ЕГЭ. Поляков-7406
(А. Минак) На вход алгоритма подаётся натуральное число \(N > 143\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится запись числа \(N\) в двенадцатеричной системе счисления.
Далее эта запись обрабатывается по следующему правилу:
а) если \(N\) делится на \(12\), то в конец этой записи дописываются три её последние цифры;
б) если число \(N\) на \(12\) не делится, то остаток от деления умножается на \(3\), переводится в двенадцатеричную запись и дописывается в начало числа.
Полученная таким образом запись является двенадцатеричной записью искомого числа \(R\). Например, для исходного числа \(204 = 150_{12}\) результатом является число \(150150_{12} = 352716\), а для исходного числа \(275 = 1AB_{12}\) это число \(291AB_{12} = 57299\). Укажите такое число \(N\), после обработки которого с помощью этого алгоритма получится наибольшее число \(R\), которое меньше \(58000\).
Решение:
Python
def conv(n):
alph = '0123456789AB'
ans = ''
while n:
ans = alph[n % 12] + ans
n //= 12
return ans
def R(N):
tw = conv(N)
if N % 12 == 0:
tmp = tw + tw[-3:]
else:
tmp = conv(N % 12 * 3) + tw
return int(tmp, base=12)
R_max = 0
N_ans = 0
for N in range(144, 1500):
t = R(N)
if R_max < t < 58000:
R_max = t
N_ans = N
print(N_ans)
Ответ: 971
Задание 5. Информатика. ЕГЭ. Поляков-7405
(А. Минак) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится запись числа \(N\) в тринадцатеричной системе счисления.
Далее эта запись обрабатывается по следующему правилу:
а) складываются числовые значения всех цифр этой тринадцатеричной записи, и остаток от деления этой суммы на \(13\) в тринадцатеричной системе счисления дописывается в конец числа (справа);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы числовых значений её цифр на \(13\).
Полученная таким образом запись является тринадцатеричной записью искомого числа \(R\). Например, для исходного числа \(77 = 5C_{13}\) результатом является число \(5C48_{13} = 13073\). Укажите число \(N\), после обработки которого с помощью этого алгоритма получается наибольшее число \(R\), меньшее \(6000\).
Решение:
Python
def conv(n):
alph = '0123456789ABC'
ans = ''
while n:
ans = alph[n % 13] + ans
n //= 13
return ans
def R(N):
alph = '0123456789ABC'
tr = conv(N)
for _ in range(2):
n = sum([int(x, base=13) for x in tr])
tr = tr + alph[n % 13]
return int(tr, base=13)
N_max = 0
R_ans = 0
for N in range(10, 1500):
tmp = R(N)
if R_ans < tmp < 6000:
R_ans = tmp
N_max = N
print(N_max)
Ответ: 34
Задание 5. Информатика. ЕГЭ. Поляков-7386
(А. Минак) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится запись числа \(N\) в восьмеричной системе счисления.
Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в восьмеричной записи числа чётная, то к этой записи дописываются слева и справа первая цифра его восьмеричной записи;
б) если сумма цифр в восьмеричной записи числа нечётная, то к этой записи дописывается справа последняя цифра его восьмеричной записи.
Полученная таким образом запись является восьмеричной записью искомого числа \(R\). Например, для исходного числа \(17 = 21_8\) результатом является число \(211_8 = 137\), а для исходного числа \(25 = 31_8\) это число \(3313_8 = 1739\).
Укажите максимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), меньшее \(1100\).
Решение:
Python
def R(N):
c = oct(N)[2:]
sc = sum(int(x) for x in c)
if sc % 2 == 0:
c = c[0] + c + c[0]
else:
c = c + c[-1]
return int(c, base=8)
a = [N for N in range(1, 400) if R(N) < 1100]
print(a[-1])
Ответ: 136
Задание 5. Информатика. ЕГЭ. Поляков-7385
(А. Минак) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится запись числа \(N\) в четверичной системе счисления (системе с основанием \(4\)).
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(4\), то к этой записи дописываются две последние цифры четверичной записи;
б) если число \(N\) на \(4\) не делится, то остаток от его деления \(4\) умножается на \(5\), переводится в четверичную систему счисления и дописывается в конец числа.
Полученная таким образом запись является четверичной записью искомого числа \(R\). Например, для исходного числа \(17 = 101_4\) результатом является число \(10111_4 = 277\), а для исходного числа \(24 = 120_4\) это число \(12020_4 = 392\).
Укажите максимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), меньшее \(555\).
Решение:
Python
def conv(n):
a = ''
while n:
a = str(n % 4) + a
n //= 4
return a
def R(N):
t = conv(N)
t += t[-2:] if t[-1] == '0' else conv(N % 4 * 5)
return int(t, base=4)
a = [N for N in range(1, 400) if R(N) < 555]
print(a[-1])
Ответ: 34
Задание 5. Информатика. ЕГЭ. Поляков-7370
(Н. Леко) Автомат обрабатывает десятичное целое число \(N\) (\(0 \leqslant N \leqslant 255\)) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N\).
Все разряды двоичной записи инвертируются (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Если полученное число кратно \(5\), то в двоичной записи старшие три разряда заменяются на \(100\), в противном случае в двоичной записи старшие три разряда заменяются на \(101\).
Полученная таким образом запись является двоичной записью искомого числа \(R\). Сколько существует чисел \(N\), из которых в результате выполнения алгоритма может получиться число \(180\)?
Решение:
Python
def R(N):
s = bin(N)[2:]
if len(s) < 8:
s = '0' * (8 - len(s)) + s
t = ''
for ch in s:
t += '0' if ch == '1' else '1'
i = int(t, base = 2)
f = '100' if i % 5 == 0 else '101'
return int(f + t[3:], base=2)
q = 0
for N in range(256):
if R(N) == 180:
q += 1
print(q)
Ответ: 6
Задание 5. Информатика. ЕГЭ. Поляков-7055
(PRO100-ЕГЭ) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится троичная запись числа \(N.\)
К этой записи дописываются справа ещё несколько разрядов по следующему правилу:
если \(N\) чётное, то к нему справа приписываются два нуля, а слева единица;
если \(N\) нечётное, то к нему справа приписывается в троичном виде сумма цифр его троичной записи.
Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа \(N\)) является троичной записью искомого числа \(R.\)
Например, исходное число \(4_{10} = 11_3\) преобразуется в число \(11100_3 = 117_{10}\), а исходное число \(7_{10} = 21_3\) преобразуется в число \(2110_3 = 66_{10}\).
Укажите такое наименьшее число \(N,\) для которого число \(R\) больше числа \(168.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(N):
ans = ''
while N:
ans = str(N % 3) + ans
N //= 3
return ans
def R(N):
tr = conv(N)
if N % 2 == 0:
tr = '1' + tr + '00'
else:
tr += conv(sum(int(x) for x in tr))
return int(tr, 3)
for N in range(3, 100):
if R(N) > 168:
print(N)
break
Ответ: 10
Задание 5. Информатика. ЕГЭ. Поляков-7054
(PRO100-ЕГЭ) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится шестеричная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
если число \(N\) делится на \(3,\) то к этой записи дописываются две первые шестеричные цифры;
если число \(N\) на \(3\) не делится, то остаток от деления на \(3\) умножается на \(10,\) переводится в шестеричную запись и дописывается в конец числа.
Полученная таким образом запись является шестеричной записью искомого числа \(R.\)
Пример. Число \(11_{10} = 15_6\) не делится на \(3,\) поэтому в конец его шестеричной записи \(15_6\) дописывается шестеричная запись числа \((11 \mod 6) \cdot 10 = 20 = 32_6\), так что результатом работы автомата является число \(1532_6 = 416_{10}\). Исходное число \(12_{10} = 20_6\) делится на \(3,\) поэтому в конец шестеричной записи \(20_6\) дописываются её две первых цифры \(20,\) так что результатом работы автомата является число \(2020_6 = 444_{10}\).
Укажите минимальное число \(R,\) большее \(680,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(N):
ans = ''
while N:
ans = str(N % 6) + ans
N //= 6
return ans
def R(N):
d = conv(N)
if N % 3 == 0:
d += d[:2]
else:
d += conv(N % 3 * 10)
return int(d, 6)
print(min(R(N) for N in range(7, 500) if R(N) > 680))
Ответ: 694
Задание 5. Информатика. ЕГЭ. Поляков-7000
(Е. Джобс) Автомат обрабатывает натуральное девятиразрядное число \(N\) по следующему алгоритму:
Находится сумма разрядов числа \(N.\)
Полученное число переводится в двоичную систему счисления.
К записи, полученной на предыдущем этапе, дописываются разряды по следующему правилу:
Если количество единиц четное дописывается единица слева и два нуля справа,
Если количество единиц нечетное дописывается \(10\) слева и \(1\) справа.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Пример. Дано число \(N = 123456789.\) Алгоритм работает следующим образом:
Сумма разрядов \(45.\)
Двоичная запись \(101101.\)
Единиц четное количество, следовательно, получаем \(1+101101+00 = 110110100.\)
\(110110100_2 = 436.\)
Сколько существует чисел \(N,\) для которых результат работы автомата равен \(21?\)
Решение:
Число \(21\) в двоичной записи имеет вид \(10101.\) Значит оно было получено по правилу 2b из числа \(10_2 = 2.\) Поэтому, нужно найти количество девятизначных чисел, сумма цифр которых равна \(2.\) Но это либо число \(200~000~000,\) либо число имеющее в своей записи две единицы и семь нулей, причём одна единица обязательно стоит в старшем разряде. Таких чисел \(8.\) Значит, количество девятизначных чисел, сумма цифр которых равна \(2\) ровно \(9.\)
Ответ: 9
Задание 5. Информатика. ЕГЭ. Поляков-6999
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
В этой записи последний ноль заменяется на первые две цифры полученной записи. Если нуля нет, алгоритм аварийно завершается.
Запись записывается справа налево (в обратную сторону).
Полученная таким образом запись является двоичной записью искомого числа \(R.\) Для какого минимального значения \(N\) в результате работы алгоритма получится число \(123?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
p = -1
for i in range(len(bn) - 1, -1, -1):
if bn[i] == '0':
p = i
break
if p == -1:
return None
bn = bn[:p] + bn[:2] + bn[p + 1:] if p < len(bn) else ''
return int(bn[::-1], 2)
for N in range(4, 100):
if R(N) and R(N) == 123:
print(N)
break
Ответ: 47
Задание 5. Информатика. ЕГЭ. Поляков-6998
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число R следующим образом.
Строится двоичная запись числа \(N.\)
К полученной записи дописываются разряды. Если в числе четное количество единиц, слева дописывается \(1\) справа два нуля, если нечетное – слева две единицы.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом:
Двоичная запись числа \(N:\) \(1101.\)
Число нечетное, следовательно, слева дописываем две единицы – \(11 + 1101 = 111101.\)
На экран выводится число \(111101_2 = 61.\)
В результате работы автомата на экране появилось число, не меньшее \(412.\) Для какого наименьшего значения \(N\) данная ситуация возможна?
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('1') % 2 == 0:
bn = '1' + bn + '00'
else:
bn = '11' + bn
return int(bn, 2)
for N in range(13, 300):
if R(N) >= 412:
print(N)
break
Ответ: 39
Задание 5. Информатика. ЕГЭ. Поляков-6996
(Е. Джобс) На вход алгоритма подается натуральное число \(N > 1.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Из полученной записи убирается старшая (левая) единица.
Далее эта запись обрабатывается по следующему правилу:
если в полученной записи количество единиц четное, то слева дописывается 10;
если количество единиц нечётное, слева дописывается 1, справа 0.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(4 = 100_2\) результатом будет являться число \(8 = 1000_2,\) а для исходного числа \(6 = 110_2\) результатом будет являться число \(12 = 1100_2.\)
Укажите максимальное число \(R,\) меньшее \(450,\) которое может являться результатом работы алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'[1:]
if bn.count('1') % 2 == 0:
bn = '10' + bn
else:
bn = '1' + bn + '0'
return int(bn, 2)
print(max(R(N) for N in range(2, 450) if R(N) < 450))
Ответ: 444
Задание 5. Информатика. ЕГЭ. Поляков-6995
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Складываются все цифры полученной двоичной записи. Если сумма четная в конец дублируются два младших разряда, если нечетная – в конец дописываются проинвертированные два младших разряда.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом:
Двоичная запись числа \(N:\) \(1101_2.\)
Число единиц двоичной записи нечетное, следовательно, дописываем инвертированные два младших разряда – \(1101 + 10 = 110110.\)
\(110110_2 = 54_{10}.\)
В результате работы автомата на экране появилось число, большее \(154.\) Для какого наименьшего значения \(N\) это возможно?
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('1') % 2 == 0:
bn = bn + bn[-2:]
else:
bn = bn + bn[-2:][::-1]
return int(bn, 2)
for N in range(10, 155):
if R(N) > 154:
print(N)
break
Ответ: 39
Задание 5. Информатика. ЕГЭ. Поляков-6994
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\) без ведущих нулей.
Если в полученной записи единиц больше, чем нулей, то справа приписывается ноль. Иначе справа приписывается две единицы.
Полученное число переводится в десятичную запись и выводится на экран.
Найдите наименьшее число \(N,\) после обработки которого автомат выдаст результат больший \(2019.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '0' if 2 * bn.count('1') > len(bn) else '11'
return(int(bn, 2))
for N in range(10, 2020):
if R(N) > 2019:
print(N)
break
Ответ: 512
Задание 5. Информатика. ЕГЭ. Поляков-6993
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Складываются все цифры полученной двоичной записи. Если сумма получилась нечетной, справа к двоичной записи дописываются две единицы, иначе две единицы дописываются слева.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом:
Двоичная запись числа \(N:\) \(13 = 1101_2.\)
Сумма цифр двоичной записи \(3,\) число нечетное. Значит получается число \(110111_2.\)
\(110111_2 = 55_{10}\)
Найдите наименьшее число \(N,\) для которого результат работы автомата больше, чем \(102.\)
Решение:
Python
def R(N):
bn = bin(N)[2:]
if bn.count('1') % 2:
bn = bn + '11'
else:
bn = '11' + bn
return int(bn, 2)
for N in range(1, 1000):
if R(N) > 102:
print(N)
break
Ответ: 17
Задание 5. Информатика. ЕГЭ. Поляков-6992
(Е. Джобс) Автомат получает на вход трехзначное число. Поэтому числу строится новое число по следующим правилам.
Перемножаются первая и вторая, а также вторая и третья цифры исходного числа.
Полученные два числа записываются друг за другом в порядке убывания (без разделителей).
Пример. Исходное число: \(543.\) Произведения: \(5 \cdot 4 = 20;\) \(4 \cdot 3 = 12.\) Результат: \(2012.\)
Укажите максимальное число, в результате обработки которого, автомат выдаст число \(240.\)
Решение:
Python
def R(N):
d3 = N % 10
d2 = N // 10 % 10
d1 = N // 100
tmp = sorted([d1 * d2, d2 * d3])
return f'{tmp[1]}{tmp[0]}'
for N in range(999, 99, -1):
if R(N) == '240':
print(N)
break
Ответ: 830
Задание 5. Информатика. ЕГЭ. Поляков-6991
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа еще два разряда по следующему правилу:
a) складываются все цифры двоичной записи числа \(N,\) и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
b) над этой записью производятся те же действия — справа дописывается остаток от деления суммы её цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\)
Укажите такое наименьшее число \(N,\) для которого результат работы данного алгоритма больше числа \(89.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
for N in range(1, 1000):
if R(N) > 89:
print(N)
break
Ответ: 22
Задание 5. Информатика. ЕГЭ. Поляков-6989
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Полученная запись переворачивается (записывается слева направо).
В полученной записи дублируется младший (правый) бит.
Полученная таким образом запись (в ней на один разряд больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\)
Например, для числа \(11\) алгоритм будет выполняться следующим образом:
\(11 = 1011_2.\)
\(1011 \to 1101_2.\)
\(11011_2 = 27_{10}\)
Укажите минимальное число \(N\) в результате обработки которого получится число, большее \(99.\) В ответе запишите это число в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bn[::-1]
bn += bn[-1]
return int(bn, 2)
for N in range(1, 100):
if R(N) > 99:
print(N)
break
Ответ: 39
Задание 5. Информатика. ЕГЭ. Поляков-6988
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Все разряды полученного числа инвертируются.
К полученному результату справа дописывается бит четности.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\)
Например, для числа \(60\) алгоритм будет выполняться следующим образом:
\(N = 60 = 111100_2.\)
\(000011_2.\)
\(0000110_2 = 6_{10}.\)
Укажите максимальное число \(R,\) меньшее \(170,\) которое может быть получено в результате работы этого алгоритма. В ответе запишите это число в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bn.replace('0', '2').replace('1', '0').replace('2', '1')
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(max(R(x) for x in range(1, 1000) if R(x) < 170))
Ответ: 169
Задание 5. Информатика. ЕГЭ. Поляков-6987
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается справа бит четности: \(0,\) если в двоичном коде числа \(N\) было четное число единиц, и \(1,\) если нечетное.
К полученному результату дописывается \(1,\) если число \(N\) четное, \(0,\) если нечетное.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\)
Например, для числа \(60\) алгоритм будет выполняться следующим образом:
\(N = 60 = 111100_2.\)
\(1111000_2\) (\(4\) единицы \(\to\) дописываем \(0)\)
\(11110001_2\) \((N\) — четное \(\to\) дописываем \(1)\) \(= 241_{10}.\)
Укажите минимальное число \(R,\) большее \(204,\) которое может быть получено в результате работы этого алгоритма. В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += '1' if N % 2 == 0 else '0'
return int(bn, 2)
print(min(R(x) for x in range(1, 1000) if R(x) > 204))
Ответ: 211
Задание 5. Информатика. ЕГЭ. Поляков-6986
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа еще два разряда по следующему правилу:
a) складываются все цифры двоичной записи числа \(N,\) и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
b) над этой записью производятся те же действия — справа дописывается остаток от деления суммы ее цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите такое наибольшее число \(N,\) для которого результат работы данного алгоритма будет меньше \(86.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
for N in range(100, 0, -1):
if R(N) < 86:
print(N)
break
Ответ: 20
Задание 5. Информатика. ЕГЭ. Поляков-6985
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются разряды по следующему правилу: если два последних разряда одинаковые, дописывается \(0,\) иначе дописывается \(1.\)
Пункт 2 выполняется повторно.
Полученная таким образом запись является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) при вводе которого получится значение \(R\) больше, чем \(93.\) В ответе запишите полученное число в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '0' if bn[-1] == bn[-2] else '1'
bn += '0' if bn[-1] == bn[-2] else '1'
return int(bn, 2)
for N in range(10, 200):
if R(N) > 93:
print(N)
break
Ответ: 24
Задание 5. Информатика. ЕГЭ. Поляков-6984
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается справа бит четности: \(0,\) если в двоичном коде числа \(N\) было четное число единиц, и \(1,\) если нечетное.
К полученному результату дописывается еще один бит четности.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(R,\) большее \(204,\) которое может быть получено в результате работы этого алгоритма. В ответе запишите это число в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2) + '0'
return int(bn, 2)
print(min(R(x) for x in range(1, 300) if R(x) > 204))
Ответ: 210
Задание 5. Информатика. ЕГЭ. Поляков-6983
(Е. Джобс) Автомат получает на вход четырехзначное число. По этому числу строится новое число по следующим правилам.
Перемножаются первая и вторая, а также третья и четвертая цифры исходного числа.
Полученные два числа записываются друг за другом в порядке возрастания (без разделителей).
Пример. Исходное число: \(5431.\) Произведения: \(5 \cdot 4 = 20;\) \(3 \cdot 1 = 3.\) Результат: \(320.\)
Укажите максимальное число, в результате обработки которого, автомат выдаст число \(1214.\)
Решение:
Python
def R(N):
sn = str(N)
nums = sorted([int(sn[0]) * int(sn[1]),
int(sn[2]) * int(sn[3])])
return f'{nums[0]}{nums[1]}'
for N in range(9999, 999, -1):
if R(N) == '1214':
print(N)
break
Ответ: 7262
Задание 5. Информатика. ЕГЭ. Поляков-6913
(П. Финкель) Алгоритм получает на вход пятизначное натуральное число \(N\) и строит по нему новое число \(R\) следующим образом:
Строится восьмеричная запись числа \(N.\)
Все нечётные цифры записи заменяются на \(2.\)
К строке приписывается остаток от деления числа \(N\) на \(8.\)
Число переводится в десятичную систему счисления.
Затем действия 1-4 повторяются ещё один раз.
Укажите сумму таких \(N,\) при которых число, полученное в результате работы алгоритма, кратно \(2023.\)
Решение:
Python
def R(N):
on = f'{N:o}'
on = on.replace('1', '2').replace('3', '2')
on = on.replace('5', '2').replace('7', '2')
on += str(N % 8)
tmp = int(on, 8)
on = f'{tmp:o}'
on = on.replace('1', '2').replace('3', '2')
on = on.replace('5', '2').replace('7', '2')
on += str(N % 8)
return int(on, 8)
print(sum(N for N in range(10000, 100000) if R(N) % 2023 == 0))
Ответ: 197535
Задание 5. Информатика. ЕГЭ. Поляков-6912
(П. Финкель) Алгоритм получает на вход четырёхзначное натуральное число \(N\) и строит по нему новое число \(R\) следующим образом:
Строится восьмеричная запись числа \(N.\)
Все чётные цифры записи заменяются на \(1.\)
К строке приписывается остаток от деления числа \(N\) на \(8.\)
Число переводится в десятичную систему счисления.
Затем действия 1-4 повторяются ещё один раз.
Укажите наибольшее число, кратное \(234,\) которое может быть получено в результате работы алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
on = f'{N:o}'
on = on.replace('0', '1').replace('2', '1')
on = on.replace('4', '1').replace('6', '1')
on += str(N % 8)
tmp = int(on, 8)
on = f'{tmp:o}'
on = on.replace('0', '1').replace('2', '1')
on = on.replace('4', '1').replace('6', '1')
on += str(N % 8)
return int(on, 8)
print(max(R(N) for N in range(1000, 10000) if R(N) % 234 == 0))
Ответ: 244296
Задание 5. Информатика. ЕГЭ. Поляков-6908
(А. Минак) Алгоритм получает на вход натуральное число \(N > 10\) и строит по нему новое число \(R\) следующим образом:
Строится восьмеричная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(5,\) то к этой записи дописываются три первые цифры его восьмеричной записи;
б) если число \(N\) на \(5\) не делится, то остаток от деления на \(5\) переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является восьмеричной записью искомого числа \(R.\)
Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) не меньшее, чем \(35000.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
noct = f'{N:o}'
if N % 5 == 0:
noct += noct[:3]
else:
noct += f'{N % 5:b}'
return int(noct, 8)
for N in range(8**2, 35000):
if R(N) > 35000:
print(N)
break
Ответ: 69
Задание 5. Информатика. ЕГЭ. Поляков-6887
(Н. Сафронов) Алгоритм получает на вход натуральное число \(N > 10\) и строит по нему новое число \(R\) следующим образом:
Строится троичная запись числа \(N.\)
К этой записи дописываются разряды по следующему правилу. Если количество четных цифр в полученной записи больше чем нечетных, слева дописывается \(22,\) иначе \(11.\)
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Например, для числа \(18\) троичная запись \(200_3\) преобразуется в запись \(22200_3 = 234,\) для числа \(22\) троичная запись \(211_3\) преобразуется в \(11211_3 = 130.\)
Укажите минимальное значение \(R,\) больше чем \(100,\) которое может получится в результате работы алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(N):
ans = ''
while N:
ans = str(N % 3) + ans
N //= 3
return ans
def R(N):
tn = conv(N)
if tn.count('1') < len(tn) - tn.count('1'):
tn = '22' + tn
else:
tn = '11' + tn
return int(tn, 3)
print(min(R(N) for N in range(11, 100) if R(N) > 100))
Ответ: 120
Задание 5. Информатика. ЕГЭ. Поляков-6886
(Н. Сафронов) Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом:
Строится троичная запись числа \(N.\)
К этой записи дописываются разряды по следующему правилу. Если сумма троичных разрядов кратна \(3,\) слева дописывается \(20,\) иначе слева дописывается \(10.\)
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Например, для числа \(10\) троичная запись \(101_3\) преобразуется в запись \(10101_3 = 91,\) для числа \(11\) троичная запись \(102_3\) преобразуется в \(20102_3 = 173.\)
Укажите максимальное значение \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее чем \(100.\)
Решение:
Python
def conv(N):
ans = ''
while N:
ans = str(N % 3) + ans
N //= 3
return ans
def R(N):
tr = conv(N)
if sum(int(x) for x in tr) % 3 == 0:
tr = '20' + tr
else:
tr = '10' + tr
return int(tr, 3)
for N in range(100, 0, -1):
if R(N) < 100:
print(N)
break
Ответ: 18
Задание 5. Информатика. ЕГЭ. Поляков-6885
(К. Багдасарян) Алгоритм получает на вход натуральное число \(N > 14\) и строит по нему новое число \(R\) следующим образом:
Строится запись числа \(N\) в системе счисления с основанием \(15.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(15,\) то в конец дописываются первые две цифры пятнадцатеричной записи числа;
б) если число \(N\) на \(15\) не делится, то остаток от его деления на \(15\) умножается на \(13,\) переводится в систему счисления с основанием \(15\) и дописывается в конец числа.
Полученная таким образом запись является пятнадцатеричной записью искомого числа \(R.\)
Укажите минимальное число \(R,\) большее \(700,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(N):
alph = '0123456789ABCDE'
ans = ''
while N:
ans = alph[N % 15] + ans
N //= 15
return ans
def R(N):
n15 = conv(N)
n15 += n15[:2] if n15[-1] == '0' else conv(int(n15[-1], 15) * 13)
return int(n15, 15)
print(min(R(N) for N in range(15, 700) if R(N) > 700))
Ответ: 703
Задание 5. Информатика. ЕГЭ. Поляков-6884
(К. Багдасарян) Алгоритм получает на вход натуральное число \(N > 11\) и строит по нему новое число \(R\) следующим образом:
Строится запись числа \(N\) в системе счисления с основанием \(12.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(12,\) то в конец дописываются две последние цифры двенадцатеричной записи числа;
б) если число \(N\) на \(12\) не делится, то остаток от его деления на \(12\) умножается на \(9,\) переводится в систему счисления с основанием \(12\) и дописывается в конец числа.
Полученная таким образом запись является двенадцатеричной записью искомого числа \(R.\)
Укажите минимальное число \(R,\) большее \(300,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(N):
alph = '0123456789AB'
ans = ''
while N:
ans = alph[N % 12] + ans
N //= 12
return ans
def R(N):
n12 = conv(N)
n12 += n12[-2:] if n12[-1] == '0' else conv(int(n12[-1], 12) * 9)
return int(n12, 12)
print(min(R(x) for x in range(12, 300) if R(x) > 300))
Ответ: 309
Задание 5. Информатика. ЕГЭ. Поляков-6883
(К. Багдасарян) Алгоритм получает на вход натуральное число \(N > 4\) и строит по нему новое число \(R\) следующим образом:
Строится пятеричная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) делится на \(5,\) то в конец дописываются две последние цифры пятеричной записи числа;
б) если число \(N\) на \(5\) не делится, то остаток от его деления на \(5\) умножается на \(7,\) переводится в пятеричную запись и дописывается в конец числа.
Полученная таким образом запись является пятеричной записью искомого числа \(R.\)
Укажите минимальное число \(R,\) большее \(200,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(N):
alph = '01234'
ans = ''
while N:
ans = alph[N % 5] + ans
N //= 5
return ans
def R(N):
n5 = conv(N)
n5 += n5[-2:] if n5[-1] == '0' else conv(int(n5[-1], 5) * 7)
return int(n5, 5)
print(min(R(x) for x in range(5, 200) if R(x) > 200))
Ответ: 221
Задание 5. Информатика. ЕГЭ. Поляков-6869
(С. Якунин) На вход алгоритму подаётся четырёхзначное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится число \(K\) из цифр числа \(N,\) расположенных в порядке невозрастания.
Строится число \(M\) из цифр числа \(N,\) расположенных в порядке неубывания.
Число \(R\) вычисляется как разность \(K – M.\)
Найдите минимальное число \(N,\) для которого число \(R,\) полученное в результате работы алгоритма, равно \(6174\) (постоянной Капрекана), и при этом число \(K\) максимально возможное.
Решение:
Python
def R(N):
K = int(''.join(sorted(list(str(N)), reverse=True)))
M = int(''.join(sorted(list(str(N)))))
return abs(K - M), K
K = 0
Nmin = 100_000
for N in range(1000, 10_000):
Rt, Kt = R(N)
if Rt == 6174 and Kt > K:
Nmin = N
K = Kt
print(Nmin)
Ответ: 3799
Задание 5. Информатика. ЕГЭ. Поляков-6861
*(В. Шубинкин) Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом:
Строится запись числа \(N\) в системе счисления с основанием \(45.\)
Цифры числа нумеруются слева направо, начиная с единицы. Отдельно складываются цифры, стоящие на чётных местах, и цифры, стоящие на нечётных местах.
Запись меньшей из сумм в системе счисления с основанием \(45\) приписывается в начало числа, запись большей из сумм в системе счисления с основанием \(45\) – в конец. В случае появления ведущего нуля, он игнорируется.
Результат переводится в десятичную систему счисления.
Пример. Алгоритм получает число \(N = 95_{10} = 25_{45}.\) Цифра \(2\) стоит на позиции № 1, цифра \(5\) – на позиции № 2. Сумма цифр на чётных местах равна \(5_{45},\) сумма цифр на нечётных местах равна \(2_{45}.\) Приписывая цифры, получаем число \(2255_{45} = 186530_{10}.\)
Какое наименьшее число может получиться в результате работы алгоритма при вводе \(N > 1000?\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
from itertools import count
def conv(n):
ans = []
while n:
ans.append(n % 45)
n //= 45
return ans[::-1]
def R(N):
tmp = conv(N)
s = [conv(sum(tmp[1::2])), conv(sum(tmp[::2]))]
s.sort()
tmp += s[1]
if s[0]:
tmp = s[0] + tmp
ans = sum(n * 45**p for n, p in zip(tmp[::-1], count(0)))
return ans
print(min(R(x) for x in range(1001, 10_000)))
Ответ: 46598
Задание 5. Информатика. ЕГЭ. Поляков-6860
*(В. Шубинкин) Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом:
Строится запись числа \(N\) в системе счисления с основанием \(80.\)
Отдельно складываются чётные и нечётные цифры числа. Если чётных или нечётных чисел нет, сумма считается равной нулю.
У большей из сумм определяется последняя цифра в системе счисления с основанием \(80.\) Эта цифра приписывается в конец восьмидесятеричной записи числа \(N.\)
Пункты 2 и 3 повторяются ещё один раз.
Результат переводится в десятичную систему счисления.
Пример. Алгоритм получает число \(N = 83_{10} = 13_{80}.\) Сумма чётных цифр принимается равной нулю (их нет в записи числа), сумма нечётных цифр равна \(4 > 0.\) Число \(4_{10} = 4_{80}\) – заканчивается на цифру \(4\) в системе счисления с основанием \(80;\) приписываем её к \(13_{80},\) получаем \(134_{80}.\) Теперь обе суммы равны \(4,\) поэтому в конец приписывается ещё одна цифра \(4,\) получаем \(1344_{80} = 531524_{10}.\)
Определите наименьшее число \(N,\) при котором результат работы алгоритма \(R\) будет больше \(1000000_{10}.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
from itertools import count
def conv(n):
ans = []
while n:
ans.append(n % 80)
n //= 80
return ans[::-1]
def R(N):
tmp = conv(N)
for _ in range(2):
s = [sum([0] + [x for x in tmp if x % 2 == 0]), sum([0] + [x for x in tmp if x % 2 == 1])]
s.sort()
tmp += [s[1] % 80]
return sum(n * 80**p for n, p in zip(tmp[::-1], count(0)))
for N in count(1):
if R(N) > 1_000_000:
print(N)
break
Ответ: 156
Задание 5. Информатика. ЕГЭ. Поляков-6849
(Б. Михлин) Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом:
Если число \(N\) четное, то оно делится на \(2,\) иначе из него вычитается \(1.\)
Если полученное на предыдущем шаге число кратно \(6,\) то оно делится на \(6,\) иначе из него вычитается \(1.\)
Если полученное на предыдущем шаге число кратно \(15,\) то оно делится на \(15,\) иначе из него вычитается \(1.\) Это число считается результатом работы алгоритма \(R.\)
Найдите минимальное число \(N,\) шестнадцатеричная запись которого содержит цифру \(C,\) а соответствующее число \(R\) равно \(523.\)
Решение:
Python
from itertools import count
def R(N):
if N % 2 == 0:
N //= 2
else:
N -= 1
if N % 6 == 0:
N //= 6
else:
N -= 1
if N % 15 == 0:
N //= 15
else:
N -= 1
return N
for N in count(1):
if R(N) == 523 and hex(N).count('c'):
print(N)
break
Ответ: 3145
Задание 5. Информатика. ЕГЭ. Поляков-6848
(Б. Михлин) Автомат получает на вход натуральное десятичное число \(N,\) которое в восьмеричной системе счисления является четырёхзначным, и строит новое число \(R\) по следующему алгоритму:
Вычисляются суммы первой (левой) и последней (правой), а также второй и третьей цифр десятичной записи числа \(N.\)
Полученные суммы записываются в порядке неубывания; эта запись является десятичной записью искомого числа \(R.\)
Укажите сумму наименьшего и наибольшего чисел \(N,\) при которых получается \(R = 317.\)
Решение:
Python
def R(N):
ns = str(N)
s = [int(ns[0]) + int(ns[-1]), int(ns[1]) + int(ns[2])]
s.sort()
return int(f'{s[0]}{s[1]}')
arr = [N for N in range(8**3, 8**4) if R(N) == 317]
print(arr[0] + arr[-1])
Ответ: 5872
Задание 5. Информатика. ЕГЭ. Поляков-6811
(ЕГЭ-2023) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится троичная запись числа \(N.\)
Если число \(N\) делится на \(3,\) к троичной записи слева приписывается \(1,\) а справа – \(02;\) иначе остаток от деления числа на \(3\) умножается на \(4,\) переводится в троичную систему и дописывается в конец троичной записи.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Например, для числа \(11\) троичная запись \(102_3\) преобразуется в запись \(10222_3 = 107,\) для числа \(12\) троичная запись \(110_3\) преобразуется в \(111002_3 = 353.\) Укажите максимальное значение \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее чем \(199.\)
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 3) + ans
n //= 3
return ans
def R(N):
tr = conv(N)
if N % 3 == 0:
tr = '1' + tr + '02'
else:
tr += conv(N % 3 * 4)
return int(tr, 3)
print(max(N for N in range(1, 200) if R(N) < 199))
Ответ: 20
Задание 5. Информатика. ЕГЭ. Поляков-6705
(Е. Джобс) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Если число \(N\) делится на \(2,\) к двоичной записи справа дописывается \(0,\) иначе справа дописывается \(1.\)
Если в двоичной записи числа \(N\) чётное число единиц, справа дописывается \(0,\) иначе дописывается \(1.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для числа \(13\) двоичная запись \(1101_2\) преобразуется в запись \(110111_2 = 55,\) для числа \(10\) двоичная запись \(1010_2\) преобразуется в \(101000_2 = 40.\) Укажите минимальное значение \(R,\) большее чем \(2023,\) которое может быть результатом работы алгоритма.
Решение:
Python
def R(N):
bn = f'{N:b}'
ans = bn + str(N % 2)
ans += str(bn.count('1') % 2)
return int(ans, 2)
print(min(R(x) for x in range(1, 2300) if R(x) > 2023))
Ответ: 2025
Задание 5. Информатика. ЕГЭ. Поляков-6704
(А. Рогов) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Если число \(N\) не делится на \(2,\) все цифры двоичной записи инвертируются (\(0\) заменяется на \(1\) и наоборот).
Все цифры полученной двоичной записи дублируются.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для числа \(6\) двоичная запись \(110_2\) преобразуется в запись \(111100_2 = 60,\) для числа \(5\) двоичная запись \(101_2\) преобразуется в \(1100_2 = 12.\) Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) большее чем \(60.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2:
bn = bn.replace('0', '2').replace('1', '0').replace('2', '1')
bn = ''.join(ch*2 for ch in bn)
return int(bn, 2)
for N in range(1, 100):
if R(N) > 60:
print(N)
break
Ответ: 8
Задание 5. Информатика. ЕГЭ. Поляков-6703
(ЕГЭ-2023) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится троичная запись числа \(N.\)
Если число \(N\) делится на \(3,\) к троичной записи справа дописываются две её последние цифры, иначе остаток от деления числа на \(3\) умножается на \(5,\) переводится в троичную систему и дописывается в конец троичной записи.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Например, для числа \(11\) троичная запись \(102_3\) преобразуется в запись \(102101_3 = 307,\) для числа \(12\) троичная запись \(110_3\) преобразуется в \(11010_3 = 111.\) Укажите минимальное значение \(R,\) большее чем \(133,\) которое может быть результатом работы алгоритма.
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 3) + ans
n //= 3
return ans
def R(N):
tr = conv(N)
tr += tr[-2:] if N % 3 == 0 else conv(N % 3 * 5)
return int(tr, 3)
print(min(R(x) for x in range(1, 100) if R(x) > 133))
Ответ: 141
Задание 5. Информатика. ЕГЭ. Поляков-6702
(М. Шагитов) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
К этой записи дописываются разряды по следующему правилу. Если число \(N\) кратно \(3,\) то справа дописываются три последние цифры двоичной записи; иначе остаток от деления числа \(N\) на \(3\) умножается на \(3,\) переводится в двоичную систему и записывается в конец двоичной записи.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для числа \(12\) двоичная запись \(1100_2\) преобразуется в запись \(1100100_2 = 100,\) для числа \(4\) двоичная запись \(100_2\) преобразуется в \(10011_2 = 19.\) Укажите максимальное возможное значение \(R,\) меньшее \(170,\) которое может быть получено с помощью этого алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-3:] if N % 3 == 0 else f'{N % 3 * 3:b}'
return int(bn, 2)
print(max(R(N) for N in range(4, 200) if R(N) < 170))
Ответ: 166
Задание 5. Информатика. ЕГЭ. Поляков-6622
(Е. Джобс) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
К этой записи дописываются разряды по следующему правилу. Если число кратно \(3,\) то справа дописывается \(010,\) иначе справа дописывается двоичная запись результата умножения \(5\) на остаток от деления числа \(N\) на \(3.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для числа \(13 = 1101_2\) получается \(1101101_2 = 109,\) для числа \(9\) двоичная запись \(1001_2\) преобразуется в \(1001010_2 = 74.\) Укажите значение \(N,\) в результате обработки которого будет получено минимально возможное четное значение \(R,\) большее \(300.\) Если таких значений несколько, приведите минимальное подходящее значение.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '010' if N % 3 == 0 else f'{N % 3 * 5:b}'
return int(bn, 2)
Nmin = 0
Rmin = float('inf')
for N in range(1, 300):
r = R(N)
if r > 300 and r % 2 == 0 and r < Rmin:
Rmin = r
Nmin = N
print(Nmin)
Ответ: 39
Задание 5. Информатика. ЕГЭ. Поляков-6621
(Е. Джобс) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Если число кратно \(5,\) то слева дописывается \(1,\) справа две последние цифры (младшие разряды). Иначе слева дописывается двоичное представления остатка от деления числа на \(5.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для числа \(13 = 1101_2\) получается \(111101_2 = 61,\) для числа \(10 = 1010_2\) получается \(1101010_2 = 106.\) Укажите максимальное число \(R,\) не превышающее \(223,\) которое может являться результатом работы данного алгоритма. В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 5 == 0:
bn = '1' + bn + bn[-2:]
else:
bn = f'{N % 5 : b}' + bn
return int(bn, 2)
print(max(R(N) for N in range(5, 230) if R(N) < 223))
Ответ: 219
Задание 5. Информатика. ЕГЭ. Поляков-6590
(Е. Джобс) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
К этой записи дописываются разряды по следующему правилу. Если сумма двоичных разрядов кратна \(4,\) слева дописывается \(10,\) иначе \(11.\)
К полученной записи справа дописывается еще один разряд – \(0,\) если полученное двоичное число нечетное, \(1\) в обратном случае.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для числа \(13 = 1101_2\) получается \(1111010_2 = 122,\) для числа \(10 = 1010_2\) получается \(1110101_2 = 117.\) Укажите максимальное число \(N,\) для которого значение \(R\) не превышает \(250.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = '10' + bn if sum(int(x) for x in bn) % 4 == 0 else '11' + bn
bn += '0' if bn[-1] == '1' else '1'
return int(bn, 2)
print(max(N for N in range(1, 250) if R(N) <= 250))
Ответ: 30
Задание 5. Информатика. ЕГЭ. Поляков-6576
(А. Богданов) Назовём битом чётности остаток от деления числа единиц двоичной записи на \(2.\) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Если число \(N\) четное, то к двоичному представлению слева дописывается \(1,\) а справа бит четности числа \(N;\) если число нечетное, то к двоичному представлению справа дописывается \(0\) и затем бит четности числа \(N.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(12 = 1100_2\) результатом является число \(111000_2 = 56,\) а для исходного числа \(5 = 101_2\) результатом является число \(10100_2 = 20.\) Укажите число \(N,\) после обработки которого с помощью этого алгоритма получается минимальное число \(R,\) большее \(100.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
parity_bit = str(bn.count('1') & 1)
bn = bn + '0' if N & 1 else '1' + bn
bn += parity_bit
return int(bn, 2)
min_R = 10**100
ans = 0
for N in range(1, 100):
tmp = R(N)
if min_R > tmp > 100:
ans = N
min_R = tmp
print(ans)
Ответ: 25
Задание 5. Информатика. ЕГЭ. Поляков-6545
(М. Гутров) Многие целые числа можно превратить в палиндром после неоднократного сложения самого числа и его инвертированной копии. Например, для числа \(254\) нужно \(3\) итерации чтобы оно стало палиндромом: \(254 + 452 = 706,\) \(706 + 607 = 1313,\) \(1313 + 3131 = 4444.\) В диапазоне чисел от \(100\) до \(200\) найдите количество чисел, которые могут быть превращены в палиндром не более чем за \(5\) итераций.
Решение:
Python
def is_pal(n):
if str(n) == str(n)[::-1]:
return True
f = False
for _ in range(5):
n += int(str(n)[::-1])
if str(n) == str(n)[::-1]:
f = True
break
return f
print(sum(is_pal(n) for n in range(100, 201)))
Ответ: 92
Задание 5. Информатика. ЕГЭ. Поляков-6535
(А. Богданов) Назовём битом чётности остаток от деления числа единиц двоичной записи на \(2.\) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Если двоичная запись задаёт нечётное число и её бит чётности равен \(1,\) то к этой записи слева дописывается \(1;\) в противном случае справа дописывается бит чётности.
Шаг 2 повторяется.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(12 = 1100_2\) результатом является число \(110000_2 = 48,\) а для исходного числа \(4 = 100_2\) результатом является число \(10010_2 = 18.\) Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее \(100.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(2):
parity_bit = bn.count('1') & 1
bn = '1' + bn if bn[-1] == '1' and parity_bit else bn + str(parity_bit)
return int(bn, 2)
print(max(N for N in range(1, 100) if R(N) < 100))
Ответ: 24
Задание 5. Информатика. ЕГЭ. Поляков-6534
*На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Если число \(N\) делится на \(6,\) в конец двоичной записи дописывается двоичный код числа \(7,\) иначе дописывается единица.
Если число, полученное после шага \(2,\) делится на \(3,\) в конец двоичной записи дописывается двоичный код числа \(5,\) иначе дописывается единица.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(12_{10} = 1100_2\) (делится на \(6\)) после шага \(2\) получается число \(1100111_2 = 103_{10}\) (не делится на \(3\)), а после шага \(3\) – число \(11001111_2 = 207_{10}.\) Определите наименьшее возможное значение \(N,\) для которого в результате работы алгоритма получается \(R > 300000.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '111' if N % 6 == 0 else '1'
bn += '101' if int(bn, 2) % 3 == 0 else '1'
return int(bn, 2)
for N in range(100, 300_000):
if R(N) > 300_000:
print(N)
break
Ответ: 18750
Задание 5. Информатика. ЕГЭ. Поляков-6533
*На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Если число \(N\) делится на \(7,\) в конец двоичной записи дописывается двоичный код числа \(7,\) иначе дописывается единица.
Если число, полученное после шага \(2,\) делится на \(5,\) в конец двоичной записи дописывается двоичный код числа \(5,\) иначе дописывается единица.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(14_{10} = 1110_2\) (делится на \(7\)) после шага \(2\) получается число \(1110111_2 = 119_{10}\) (не делится на \(5\)), а после шага \(3\) – число \(11101111_2 = 239_{10}.\) Определите наименьшее возможное значение \(N,\) для которого в результате работы алгоритма получается \(R > 500000.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '111' if N % 7 == 0 else '1'
bn += '101' if int(bn, 2) % 5 == 0 else '1'
return int(bn, 2)
for N in range(100, 500_000):
if R(N) > 500_000:
print(N)
break
Ответ: 7826
Задание 5. Информатика. ЕГЭ. Поляков-6532
*На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Если число \(N\) делится на \(3,\) в конец двоичной записи дописывается двоичный код числа \(3,\) иначе дописывается единица.
Если число, полученное после шага \(2,\) делится на \(5,\) в конец двоичной записи дописывается двоичный код числа \(5,\) иначе дописывается единица.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(7_{10} = 111_2\) (не делится на \(3\)) после шага \(2\) получается число \(1111_2 = 15_{10}\) (делится на \(5\)), а после шага \(3\) – число \(1111101_2 = 125_{10}.\) Определите наибольшее возможное значение \(N,\) для которого в результате работы алгоритма получается \(R < 10^6.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '11' if N % 3 == 0 else '1'
bn += '101' if int(bn, 2) % 5 == 0 else '1'
return int(bn, 2)
print(max(N for N in range(1000, 10**6) if R(N) < 10**6))
Ответ: 249998
Задание 5. Информатика. ЕГЭ. Поляков-6376
*(А. Богданов) На вход алгоритма подаётся натуральное число \(N\) \((N \geqslant 10).\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится троичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если число \(N\) чётное, в конец дописываются два младших разряда полученной троичной записи;
б) если число \(N\) нечётное, в конец дописывается троичное представление суммы цифр полученной троичной записи.
Полученная таким образом запись является троичной записью искомого числа \(R.\)
Например, для исходного числа \(10_{10} = 101_3\) результатом является число \(10101_3 = 91_{10},\) а для исходного числа \(11_{10} = 102_3\) результатом является число \(10210_3 = 102_{10}.\)
Укажите значение \(N,\) после обработки которого с помощью этого алгоритма получается минимальное число \(R.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph = '012'
ans = ''
while n:
ans = alph[n % 3] + ans
n //= 3
return ans
def R(N):
tr = conv(N)
tr += tr[-2:] if N % 2 == 0 else conv(sum(int(x) for x in tr))
return int(tr, 3)
min_R = 10**100
ans = 0
for N in range(10, 100):
if R(N) < min_R:
min_R = R(N)
ans = N
print(ans)
Ответ: 27
Задание 5. Информатика. ЕГЭ. Поляков-6283
*(PRO100 ЕГЭ) На вход алгоритма подаётся натуральное число \(N\) \((N > 10).\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если \(N\) делится на 10, то в конец этой записи дописывается четыре последние цифры двоичной записи;
б) если \(N\) не делится на \(10,\) то последняя цифра числа \(N\) возводится в квадрат, делится нацело на \(2,\) переводится в двоичную запись и дописывается в конец двоичной записи числа \(N.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(11_{10} = 1011_2\) результатом является число \(10110_2 = 22_{10},\) а для исходного числа \(20_{10} = 10100_2\) результатом является число \(101000100_2 = 324_{10}.\)
Укажите количество значений числа \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее \(680.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
r = N % 10
bn += f'{r**2 // 2:b}' if r else bn[-4:]
return int(bn, 2)
print(len([N for N in range(11, 680) if R(N) < 680]))
Ответ: 68
Задание 5. Информатика. ЕГЭ. Поляков-6282
(PRO100 ЕГЭ) На вход алгоритма подаётся натуральное число \(N\) \((N > 3).\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если \(N\) делится на \(3,\) то в конец этой записи дописывается три последние цифры двоичной записи;
б) если \(N\) не делится на \(3,\) то остаток при делении на \(3\) числа \(N\) умножается на \(3,\) переводится в двоичную запись и дописывается в конец двоичной записи числа \(N.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(12_{10} = 1100_2\) результатом является число \(1100100_2 = 100_{10},\) а для исходного числа \(4_{10} = 100_2\) результатом является число \(10011_2 = 19_{10}.\)
Найдите максимальное число \(R,\) меньшее, чем \(68,\) которое может получится в результате работы алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
r = N % 3
bn += f'{r*3:b}' if r else bn[-3:]
return int(bn, 2)
#print(R(12), R(4))
print(max(R(N) for N in range(4, 70) if R(N) < 68))
Ответ: 67
Задание 5. Информатика. ЕГЭ. Поляков-6281
(PRO100 ЕГЭ) На вход алгоритма подаётся натуральное число \(N\) \((N > 3).\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если \(N\) делится на \(4,\) то в конец этой записи дописывается две последние цифры двоичной записи;
б) если \(N\) не делится на \(4,\) то остаток от деления \(N\) на \(4\) умножается на \(2\) в двоичной системе счисления и дописывается в начало двоичной записи числа \(N.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(12_{10} = 1100_2\) результатом является число \(110000_2 = 48_{10},\) а для исходного числа \(10_{10} = 1010_2\) результатом является число \(1001010_2 = 74_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее \(68.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
r = N % 4
bn = f'{r*2:b}' + bn if r else bn + bn[-2:]
return int(bn, 2)
#print(R(12), R(10))
print(max(N for N in range(4, 70) if R(N) < 68))
Ответ: 16
Задание 5. Информатика. ЕГЭ. Поляков-6280
(PRO100 ЕГЭ) На вход алгоритма подаётся натуральное число \(N\) \((N > 3).\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если \(N\) делится на \(5,\) то в конец этой записи дописывается три последние цифры двоичной записи;
б) если \(N\) не делится на \(5,\) то остаток при делении на \(5\) числа \(N\) умножается на \(5,\) переводится в двоичную запись и дописывается в конец двоичной записи числа \(N.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(12_{10} = 1100_2\) результатом является число \(11001010_2 = 202_{10},\) а для исходного числа \(10_{10} = 1010_2\) результатом является число \(1010010_2 = 82_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее \(100.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
r = N % 5
bn += f'{r*5:b}' if r else bn[-3:]
return int(bn, 2)
#print(R(12), R(10))
print(max(N for N in range(4, 100) if R(N) < 100))
Ответ: 11
Задание 5. Информатика. ЕГЭ. Поляков-6279
(Досрочный ЕГЭ-2023) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если \(N\) делится на \(3,\) то в конец этой записи дописывается три последние цифры двоичной записи.
б) если \(N\) не делится на \(3,\) то остаток при делении на \(3\) числа \(N\) умножается на \(3,\) переводится в двоичную запись и дописывается в конец двоичной записи числа \(N.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(12_{10} = 1100_2\) результатом является число \(1100100_2 = 100_{10},\) а для исходного числа \(4_{10} = 100_2\) результатом является число \(10011_2 = 19_{10}.\)
Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) не меньшее \(120.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
r = N % 3
bn += f'{r*3:b}' if r else bn[-3:]
return int(bn, 2)
#print(R(12), R(4))
for N in range(4, 120):
if R(N) >= 120:
print(N)
break
Ответ: 15
Задание 5. Информатика. ЕГЭ. Поляков-6255
(PRO100 ЕГЭ) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(0,\) а затем три левых разряда заменяются на \(101;\)
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается \(11,\) а затем два левых разряда заменяются на \(10.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(6_{10} = 110_2\) результатом является число \(1010_2 = 10_{10},\) а для исходного числа \(4_{10} = 100_2\) результатом является число \(10011_2 = 19_{10}.\)
Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) большее \(68.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('1') % 2 == 0:
bn = '101' + bn[3:] + '0'
else:
bn = '10' + bn[2:] + '11'
return int(bn, 2)
#print(R(6), R(4))
for N in range(4, 70):
if R(N) > 68:
print(N)
break
Ответ: 19
Задание 5. Информатика. ЕГЭ. Поляков-6228
(О. Миндзаев) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится четверичная запись числа \(N\)
В конец записи (справа) дописывается остаток от деления числа \(N\) на \(3,\) а в начало записи (слева) остаток от деления \(N\) на \(2.\)
Результат переводится из четверичной системы в десятичную и выводится на экран.
Пример. Дано число \(N=23.\) Алгоритм работает следующим образом: \(23 \to 113_4 \to 11132_4 \to 350.\) Какое наибольшее двузначное число может появиться на экране в результате работы этого алгоритма?
Решение:
Python
def conv(n):
alph = '0123'
ans = ''
while n:
ans = alph[n % 4] + ans
n //= 4
return ans
def R(N):
return int(str(N % 2) + conv(N) + str(N % 3), 4)
print(max(R(N) for N in range(1, 100) if 9 < R(N) < 100))
Ответ: 96
Задание 5. Информатика. ЕГЭ. Поляков-6213
(А. Богданов) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
К этой записи дописываются еще несколько разрядов по следующему правилу:
а) если \(N\) четное, то к нему справа приписываются два нуля, а слева единица;
б) если \(N\) нечетное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи;
Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\)
Например, исходное число \(4_{10}=100_2\) преобразуется в число \(11000_2 = 48_{10},\) а исходное число \(13_{10} = 1101_2\) преобразуется в число \(110111_2 = 55_{10}.\) Укажите такое число \(N\) большее \(8,\) для которого число \(R\) является наименьшим среди чисел, превышающих \(88.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bn + f'{bn.count("1"):b}' if N & 1 else '1' + bn + '00'
return int(bn, 2)
#print(R(4), R(13))
min_R = 10**10
ans = 0
for N in range(9, 88):
if 88 < R(N) < min_R:
min_R = R(N)
ans = N
print(ans)
Ответ: 25
Задание 5. Информатика. ЕГЭ. Поляков-6193
(Д. Статный) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(00,\) а затем два левых разряда заменяются на \(11;\)
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается \(11,\) а затем два левых разряда заменяются на \(10.\)
Для полученной записи повторно выполняется п. 2.
Полученная таким образом запись является двоичной записью искомого числа \(R.\) Например, для исходного числа \(6_{10} = 110_2\) результатом является число \(96_{10} = 1100000_2,\) а для исходного числа \(4_{10} = 100_2\) результатом является число \(79_{10} = 1001111_2.\) Найдите максимальное число \(R,\) меньшее, чем \(1500,\) которое может получится в результате работы алгоритма.
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(2):
bn = '11' + bn[2:] + '00' if bn.count('1') % 2 == 0 else '10' + bn[2:] + '11'
return int(bn, 2)
#print(R(6), R(4))
print(max(R(N) for N in range(4, 1500) if R(N) < 1500))
Ответ: 1475
Задание 5. Информатика. ЕГЭ. Поляков-6029
(И. Митин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Каждая цифра числа \(N\) записывается с помощью \(4\)-битного двоичного кода. В конец кода каждой цифры добавляется бит чётности так, чтобы количество единиц в расширенной записи стало чётным.
Далее к этой записи справа дописывается \(0,\) а два левых разряда заменяются на \(1.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(13\) двоичные коды цифр: \(1 = 0001_2,\) \(3 = 0011_2.\) С добавленными битами чётности: \(00011\) и \(00110,\) результат шага \(1:\) \(0001100110.\) Заменяем два левых разряда на \(1\) и добавляем справа \(0:\) \(1011001100_2 = 716.\)
Укажите минимальное \(N,\) после обработки которого с помощью этого алгоритма получится \(674890.\)
Решение:
Python
def R(N):
ns = [f'{int(x):04b}' for x in str(N)]
ans = ''.join(s + str(s.count('1') & 1) for s in ns)
return int('1' + ans[2:] + '0', 2)
#print(R(13))
for N in range(14, 10_000):
if R(N) == 674890:
print(N)
break
Ответ: 5482
Задание 5. Информатика. ЕГЭ. Поляков-5991
(А. Богданов) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то \(4\) младших бита инвертируются, т.е. \(0\) изменяется на \(1,\) а \(1\) на \(0;\)
б) если сумма цифр в двоичной записи числа нечётная, то инвертируются \(4\) бита в двоичных разрядах \(1-4\) (нумерация разрядов справа налево, начиная с \(0\)).
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(125 = 1111101_2\) результатом является число \(114 = 1110010_2,\) а для исходного числа \(227 = 11100011_2\) результатом является число \(253 = 11111101_2.\)
Укажите число \(N,\) большее \(63,\) после обработки которого с помощью этого алгоритма получается минимальное число \(R.\) В ответе запишите число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = list(f'{N:b}')
start, end = (len(bn) - 4,len(bn)) if bn.count('1') % 2 == 0 else (len(bn) - 5,len(bn) - 1)
for i in range(start,end):
bn[i] = str((int(bn[i]) + 1) % 2)
return int(''.join(bn), 2)
#print(R(125), R(227))
min_R = 10*100
ans = 0
for N in range(64, 1000):
if R(N) < min_R:
min_R, ans = R(N), N
print(ans)
Ответ: 94
Задание 5. Информатика. ЕГЭ. Поляков-5901
(Е. Джобс) Автомат обрабатывает натуральное число N по следующему алгоритму:
Из числа \(N\) вычитается количество нулей в двоичной записи числа \(N.\)
Строится двоичная запись полученного числа.
К полученной записи слева дописывается три младших разряда.
Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом:
Двоичная запись числа \(13 = 1101_2\) содержит один \(0.\) \(13 – 1 = 12.\)
\(12_{10} = 1100_2\)
\(1100 \to 1001100\)
\(1001100_2 = 76\)
Какое наименьшее число, большее \(224,\) может появиться на экране в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
N -= bn.count('0')
bn = f'{N:b}'
bn = bn[-3:] + bn
return int(bn, 2)
#print(R(13))
print(min(R(N) for N in range(10, 1000) if R(N) > 224))
Ответ: 227
Задание 5. Информатика. ЕГЭ. Поляков-5900
(А. Игнатюк) Компьютер по имени Иннокентий преобразует натуральное число \(N\) по следующим правилам и получает число \(R:\)
Строится двоичная запись числа \(N.\)
Если количество цифр в двоичной записи числа \(N\) четно, то справа приписывается \(10,\) если нечётно, то слева приписывается \(11.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\) Найдите количество чисел \(N\) из отрезка \([100; \, 200],\) для которых результат работы компьютера будет четным.
Решение:
Python
def R(N):
bn = f'{N:b}'
if len(bn) % 2 == 0:
return int(bn + '10', 2)
return int('11' + bn, 2)
print(len([N for N in range(100, 201) if R(N) % 2 == 0]))
Ответ: 87
Задание 5. Информатика. ЕГЭ. Поляков-5834
(Е. Усов) Исполнитель Сыщик получает на вход натуральное число \(N\) и строит новое число \(R\) следующим образом.
Строится шестнадцатеричная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) Если число чётное, справа приписывается максимально возможная цифра, в противном случае справа приписывается \(0.\)
б) Справа приписывается шестнадцатеричная цифра – остаток от деления суммы цифр шестнадцатеричной записи на \(16.\)
в) Пункт б выполняется ещё один раз.
Полученная таким образом запись является шестнадцатеричной записью искомого числа \(R.\) Укажите минимальное число \(N,\) для которого максимальная цифра в полученной шестнадцатеричной записи встречается в пять раз чаще, чем минимальная. В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
h = hex(N)[2:]
h += 'f' if N % 2 == 0 else '0'
h += hex(sum(int(x, 16) for x in h) % 16)[2:]
h += hex(sum(int(x, 16) for x in h) % 16)[2:]
return h
for N in range(100, 10**6):
r = R(N)
min_n, max_n = min(r), max(r)
if r.count(max_n) == 5 * r.count(min_n):
print(N)
break
Ответ: 131058
Задание 5. Информатика. ЕГЭ. Поляков-5833
(Е. Усов) Исполнитель Сыщик получает на вход натуральное число \(N\) и строит новое число \(R\) следующим образом.
Строится шестнадцатеричная запись числа \(N.\)
Далее эта запись обрабатывается по следующему правилу:
а) Если число чётное, справа приписывается максимально возможная цифра, в противном случае справа приписывается \(0.\)
б) Справа приписывается шестнадцатеричная цифра – остаток от деления суммы цифр шестнадцатеричной записи на \(16.\)
в) Пункт б выполняется ещё один раз.
Полученная таким образом запись является шестнадцатеричной записью искомого числа \(R.\) Укажите минимальное число \(N,\) для которого максимальная цифра в полученной шестнадцатеричной записи встречается в пять раз реже, чем минимальная. В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
h = hex(N)[2:]
h += 'f' if N % 2 == 0 else '0'
h += hex(sum(int(x, 16) for x in h) % 16)[2:]
h += hex(sum(int(x, 16) for x in h) % 16)[2:]
return h
for N in range(100, 10**6):
r = R(N)
min_n, max_n = min(r), max(r)
if r.count(min_n) == 5 * r.count(max_n):
print(N)
break
Ответ: 4096
Задание 5. Информатика. ЕГЭ. Поляков-5722
(А. Игнатюк) Исполнитель «Аппо» получает на вход четырехзначное число \(N\) и строит новое число \(R\) по следующим правилам:
Если первая цифра числа \(N\) делится на \(4,\) то заменяем её на цифру \(9.\)
Если первая цифра числа \(N\) делится на \(2\) и не делится на \(4,\) то заменяем её на цифру \(3.\)
Сколько существует чисел \(N,\) для которых соответствующее число \(R\) начинается с цифры \(9,\) а восьмеричная запись числа \(R\) оканчивается цифрой \(4?\)
Решение:
Python
def R(N):
f = N // 1000
r = N % 1000
if f % 4 == 0:
return 9 * 1000 + r
elif f % 2 == 0:
return 3 * 1000 + r
return N
print(len([N for N in range(1000, 10_000) if R(N) // 1000 == 9 and oct(R(N))[-1] == '4']))
Ответ: 375
Задание 5. Информатика. ЕГЭ. Поляков-5721
(А. Игнатюк) Исполнитель «Аполлон» получает на вход четырёхзначное число \(N\) и строит новое число \(R\) по следующим правилам:
Если число \(N\) начинается с чётной цифры, то число \(R\) вычисляется как сумма первой и третьей цифр и модуля разности второй и четвёртой цифр.
Если число \(N\) начинается с нечётной цифры, то цифры числа \(N\) располагают в неубывающем порядке. Число \(R\) вычисляется как сумма цифр в двоичной записи полученного числа.
Сколько существует чисел \(N,\) для которых результат работы алгоритма будет более \(20?\)
Решение:
Python
def R(N):
sn = str(N)
if int(sn[0]) % 2 == 0:
ans = int(sn[0]) + int(sn[2]) + abs(int(sn[1]) - int(sn[3]))
else:
tmp = int(''.join(sorted(list(sn))))
ans = bin(tmp).count('1')
return ans
print(len([N for N in range(1000, 10_000) if R(N) > 20]))
Ответ: 160
Задание 5. Информатика. ЕГЭ. Поляков-5706
(Демо-2023) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(0,\) а затем два левых разряда заменяются на \(10;\) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается \(1,\) а затем два левых разряда заменяются на \(11.\)
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(6 = 110_2\) результатом является число \(1000_2 = 8,\) а для исходного числа \(4 = 100_2\) результатом является число \(1101_2 = 13.\)
Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) большее \(40.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('1') % 2 == 0:
return int('10' + bn[2:] + '0', 2)
return int('11' + bn[2:] + '1', 2)
#print(R(6), R(4))
for N in range(4, 100):
if R(N) > 40:
print(N)
break
Ответ: 16
Задание 5. Информатика. ЕГЭ. Поляков-5449
(Е. Джобс) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Из полученной записи убирается старшая (левая) единица.
Если в полученной записи количество единиц четное, то слева дописывается \(10,\) иначе слева дописывается \(1,\) а справа – \(0.\) Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(4_{10} = 100_2\) результатом будет являться число \(8_{10} = 1000_2,\) а для исходного числа \(6_{10} = 110_2\) результатом будет являться число \(12_{10} = 1100_2.\)
Укажите максимальное десятичное число \(R,\) меньшее \(450,\) которое может являться результатом работы алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'[1:]
if bn.count('1') % 2 == 0:
return int('10' + bn, 2)
return int('1' + bn + '0', 2)
#print(R(4), R(6))
print(max(R(N) for N in range(4, 500) if R(N) < 450))
Ответ: 444
Задание 5. Информатика. ЕГЭ. Поляков-5448
(В. Шубинкин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Складываются все цифры двоичной записи числа \(N.\) Если полученная сумма чётна, из числа убирают ведущую единицу (а также ставшие незначащими нули). В противном случае слева приписывается \(1,\) а справа – два ноля.
Над новой записью снова производятся действия, описанные в пункте 2.
Результат переводится в десятичную систему и выводится на экран.
Например, \(N = 5_{10} = 101_2 \to 1 \to 1100_2 = 12_{10} = R.\) Укажите такое наименьшее число \(N,\) для которого результат работы данного алгоритма больше \(100.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bin(int(bn[1:], 2))[2:] if bn.count('1') % 2 == 0 else '1' + bn + '00'
bn = bin(int(bn[1:], 2))[2:] if bn.count('1') % 2 == 0 else '1' + bn + '00'
return int(bn, 2)
#print(R(5))
for N in range(1, 1000):
if R(N) > 100:
print(N)
break
Ответ: 26
Задание 5. Информатика. ЕГЭ. Поляков-5447
(В. Шубинкин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Если количество единиц в этой записи чётно, стирается ведущая единица. В противном случае из записи числа убираются все нули, а в конец приписывается \(1.\)
Над новой записью снова производятся действия, описанные в пункте 2.
Результат переводится в десятичную систему и выводится на экран.
Например, \(N = 5_{10} = 101_2 \to 1 \to 11_2 = 3_{10} = R.\) Сколько существует чисел \(N,\) не превосходящих \(1000,\) таких что \(R = 7?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bin(int(bn[1:], 2))[2:] if bn.count('1') % 2 == 0 else bn.replace('0', '') + '1'
bn = bin(int(bn[1:], 2))[2:] if bn.count('1') % 2 == 0 else bn.replace('0', '') + '1'
return int(bn, 2)
#print(R(5))
print(len([N for N in range(1, 1001) if R(N) == 7]))
Ответ: 120
Задание 5. Информатика. ЕГЭ. Поляков-5446
(В. Шубинкин) Автомат получает на вход номер банковской карты (число \(N\) из \(16\) цифр) и строит по нему контрольное число \(S\) следующим образом (вариант алгоритма Лу́на):
Цифры числа нумеруются справа налево, начиная с нуля.
Цифры, стоящие на нечётных позициях, увеличиваются в два раза. Если при этом получается двузначное число, его цифры складываются.
Число \(S\) вычисляется как сумма всех цифр на чётных позициях и преобразованных цифр на нечётных позициях.
Например, для числа \(4096~8308~0309~8323\) сумма цифр на чётных позициях (с конца) \(3+3+9+3+8+3+6+0=35,\) сумма преобразованных цифр на нечётных позициях \(4+7+0+0+0+7+9+8=35.\) Общая сумма \(S = 70.\)
Найдите наименьший номер банковской карты \(N,\) для которого результатом работы алгоритма будет число \(30.\) В ответе укажите остаток от деления найденного числа \(N\) на \(10^8.\)
Решение:
Python
def conv(x):
d = 2 * int(x)
return d % 10 + d // 10
def lun(n):
ns = str(n)
even = sum(int(x) for x in ns[1::2])
odd = sum(conv(x) for x in ns[::2])
return even + odd
#print(lun(4096830803098323))
for N in range(1, 10**10):
if lun(N) == 30:
print(N % 10**8)
break
Ответ: 2899
Задание 5. Информатика. ЕГЭ. Поляков-5445
(В. Шубинкин) Автомат производит первичную проверку правильности номера банковской карты. Он получает на вход число \(N\) из \(16\) цифр и обрабатывает его по следующему правилу (вариант алгоритма Лу́на):
Цифры числа нумеруются справа налево, начиная с нуля.
Цифры, стоящие на нечётных позициях, увеличиваются в два раза. Если при этом получается двузначное число, его цифры складываются.
Складываются все цифры на чётных позициях и преобразованные цифры на нечётных позициях.
Если полученная сумма кратна \(10,\) считается, что номер корректный.
Например, для числа \(4096~8308~0309~8323\) сумма цифр на чётных позициях (с конца) \(3+3+9+3+8+3+6+0=35,\) сумма преобразованных цифр на нечётных позициях \(4+7+0+0+0+7+9+8=35.\) Общая сумма \(70\) кратна \(10,\) значит номер корректен.
Определите наименьшее число \(N,\) большее \(1234~5678~9101~1121,\) которое может быть корректным номером согласно указанному алгоритму. Укажите в ответе последние \(8\) цифр числа.
Решение:
Python
def conv(x):
d = 2 * int(x)
return d % 10 + d // 10
def lun(n):
ns = str(n)
even = sum(int(x) for x in ns[1::2])
odd = sum(conv(x) for x in ns[::2])
return even + odd
#print(lun(4096830803098323))
for N in range(1234_5678_9101_1121 + 1, 10**16 - 1):
if lun(N) % 10 == 0:
print(N % 10**8)
break
Ответ: 91011128
Задание 5. Информатика. ЕГЭ. Поляков-5440
(А. Сардарян) На вход алгоритма подаётся два натуральных числа \(N\) и \(M.\) Алгоритм строит по ним новое число \(R\) следующим образом.
Вычисляется число \(S_N\) как квадрат суммы цифр двоичной записи числа \(N.\)
Вычисляется число \(S_M\) как квадрат суммы цифр двоичной записи числа \(M.\)
Результат \(R\) вычисляется как \(S_N - S_M.\)
Укажите минимальную сумму чисел \(N\) и \(M,\) при которых получается \(R = 33.\)
Решение:
Python
def R(N, M):
return bin(N)[2:].count('1') ** 2 - bin(M)[2:].count('1') ** 2
print(min(N + M for N in range(1, 1000) for M in range(1, 1000) if R(N, M) == 33))
Ответ: 142
Задание 5. Информатика. ЕГЭ. Поляков-5439
(А. Сардарян) На вход алгоритма подаётся четырёхзначное натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Если число \(N\) четное, то цифры этого числа сортируются в порядке убывания, затем полученное число делится на \(2\) нацело (остаток отбрасывается). Полученное значение является числом \(R.\)
Пример: \(N = 1488 \to R = 8841 // 2 = 4420.\)
Если число \(N\) нечетное, то цифры этого числа сортируются в порядке возрастания, затем полученное число умножается на \(2.\) Полученное значение является числом \(R.\)
Пример: \(N = 3807 \to R = 378 \cdot 2 = 756.\)
Укажите наименьшее число \(R,\) которое больше соответствующего исходного числа \(N\) на \(1.\)
Решение:
Python
def R(N):
if N % 2 == 0:
return int(''.join(sorted(list(str(N)), reverse=True))) // 2
return int(''.join(sorted(list(str(N))))) * 2
#print(R(1488), R(3807))
print(min(R(N) for N in range(1000, 10_000) if R(N) == N + 1))
Ответ: 2105
Задание 5. Информатика. ЕГЭ. Поляков-5438
(А. Сардарян) На вход алгоритма подаётся два натуральных числа \(N\) и \(M.\) Алгоритм строит по ним новое число \(R\) следующим образом.
Вычисляется произведение \(P_1\) всех ненулевых чётных цифр чисел \(N\) и \(M.\)
Вычисляется произведение \(P_2\) всех нечётных цифр чисел \(N\) и \(M.\)
Результат \(R\) вычисляется как модуль разности \(P_1\) и \(P_2.\)
Например, для \(N = 256\) и \(M = 108\) получаем \(P_1 = 2 \cdot 6 \cdot 8 = 96\) и \(P_2 = 5 \cdot 1 = 5,\) так что \(R = |96 - 5|= 91.\) Укажите минимальное число \(M,\) при котором для \(N = 120\) получается \(R = 29.\)
Решение:
Python
def R(N, M):
d = str(N)+ str(M)
P_1, P_2 = 1, 1
for s in d:
if int(s) % 2 == 0 and s != '0':
P_1 *= int(s)
elif int(s) % 2:
P_2 *= int(s)
return abs(P_1 - P_2)
#print(R(256, 108))
for M in range(1, 1000):
if R(120, M) == 29:
print(M)
break
Ответ: 238
Задание 5. Информатика. ЕГЭ. Поляков-5368
(ЕГЭ-2022) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются ещё несколько разрядов по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(0,\) а затем два левых разряда заменяются на \(10;\)
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается \(1,\) а затем два левых разряда заменяются на \(11.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(6 = 110_2\) результатом является число \(1000_2 = 8,\) а для исходного числа \(4 = 100_2\) результатом является число \(1101_2 = 13.\) Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) меньшее, чем \(35.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('1') % 2 == 0:
return int('10' + bn[2:] + '0', 2)
return int('11' + bn[2:] + '1', 2)
#print(R(6), R(4))
print(max(N for N in range(4, 100) if R(N) < 35))
Ответ: 24
Задание 5. Информатика. ЕГЭ. Поляков-5367
(ЕГЭ-2022) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются ещё несколько разрядов по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(0,\) а затем два левых разряда заменяются на \(10;\)
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается \(1,\) а затем два левых разряда заменяются на \(11.\)
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(6 = 110_2\) результатом является число \(1000_2 = 8,\) а для исходного числа \(4 = 100_2\) результатом является число \(1101_2 = 13.\) Укажите минимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) не меньшее, чем \(16.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('1') % 2 == 0:
return int('10' + bn[2:] + '0', 2)
return int('11' + bn[2:] + '1', 2)
#print(R(6), R(4))
print(min(N for N in range(4, 100) if R(N) >= 16))
Ответ: 8
Задание 5. Информатика. ЕГЭ. Поляков-5195
(Е. Джобс) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К полученной записи дописываются разряды. Если в числе четное количество единиц, слева дописывается \(1\) и справа два нуля, если нечетное – слева дописываются две единицы.
Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом:
Двоичная запись числа \(N:\) \(1101.\)
Число единиц нечетное, следовательно слева дописываем две единицы слева – \(11 + 1101 = 111101.\)
На экран выводится число \(61 = 111101_2.\)
Для какого наименьшего значения \(N\) результат работы автомата – число, не меньшее \(412?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
ans = '1' + bn + '00' if bn.count('1') % 2 == 0 else '11' + bn
return int(ans, 2)
#print(R(13))
for N in range(1, 1000):
if R(N) >= 412:
print(N)
break
Ответ: 39
Задание 5. Информатика. ЕГЭ. Поляков-5103
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются ещё несколько разрядов по следующему правилу: если \(N\) чётное, то к нему слева дописывается \(1,\) а справа — \(10,\) если \(N\) нечетное – слева дописывается \(11\) и справа \(0;\)
Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом:
Двоичная запись числа \(N:\) \(1101.\)
Число нечетное, следовательно слева дописываем \(11,\) справа \(0\) – \(11+1101+0 = 1111010.\)
На экран выводится число \(122.\)
Сколько различных результатов, принадлежащих отрезку \([800; \, 1500],\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
return int('1' + bn + '10', 2)
return int('11' + bn + '0', 2)
#print(R(13))
print(len(set([R(N) for N in range(1, 2000) if 800 <= R(N) <= 1500])))
Ответ: 44
Задание 5. Информатика. ЕГЭ. Поляков-5102
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются ещё несколько разрядов по следующему правилу: если \(N\) чётное, то к нему слева дописывается \(1,\) а справа — \(11,\) если \(N\) нечетное – слева дописывается \(11\) и справа \(0;\)
Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом:
Двоичная запись числа \(N:\) \(1101.\)
Число нечетное, следовательно слева дописываем \(11,\) справа \(0\) – \(11+1101+0 = 1111010.\)
На экран выводится число \(122.\)
Сколько существует значений \(N,\) для которых в результате работы автомата на экране появляется число из отрезка \([500; \, 1000]?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
return int('1' + bn + '11', 2)
return int('11' + bn + '0', 2)
#print(R(13))
print(len([N for N in range(1, 2000) if 500 <= R(N) <= 1000]))
Ответ: 59
Задание 5. Информатика. ЕГЭ. Поляков-5101
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются ещё несколько разрядов по следующему правилу: если \(N\) чётное, то к нему слева дописывается \(10,\) а справа — \(1,\) если \(N\) нечетное – слева дописывается \(1\) и справа \(01;\)
Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом:
Двоичная запись числа \(N:\) \(1101.\)
Число нечетное, следовательно слева дописываем \(1,\) справа \(01\) – \(1+1101+01 = 1110101.\)
На экран выводится число \(117.\)
В результате работы автомата на экране появилось число, большее \(420.\) Для какого наименьшего значения \(N\) данная ситуация возможна?
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
return int('10' + bn + '1', 2)
return int('1' + bn + '01', 2)
#print(R(13))
print(min([N for N in range(1, 2000) if R(N) > 420]))
Ответ: 41
Задание 5. Информатика. ЕГЭ. Поляков-5100
(Досрочный ЕГЭ-2022) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются ещё несколько разрядов по следующему правилу: если \(N\) чётное, то к нему справа дописывается \(10,\) если \(N\) нечетное – слева дописывается \(1\) и справа \(01;\)
Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом:
Двоичная запись числа \(N: 1101.\)
Число нечетное, следовательно слева дописываем \(1,\) справа \(01\) – \(1+1101+01 = 1110101.\)
На экран выводится число \(117.\)
В результате работы автомата на экране появилось число, большее \(516.\) Для какого наименьшего значения \(N\) данная ситуация возможна?
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
return int(bn + '10', 2)
return int('1' + bn + '01', 2)
#print(R(13))
print(min([N for N in range(1, 2000) if R(N) > 516]))
Ответ: 65
Задание 5. Информатика. ЕГЭ. Поляков-4932
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются ещё несколько разрядов по следующему правилу:
а) если \(N\) чётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи;
б) если \(N\) нечётное, то к нему справа приписываются два нуля, а слева единица.
Например, двоичная запись числа \(1101\) будет преобразована в \(1110100.\)
Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Сколько существует различных чисел \(N,\) для которых результат работы данного алгоритма принадлежит отрезку \([500; \, 700]?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
return int(bn + bin(bn.count('1'))[2:], 2)
return int('1' + bn + '00', 2)
print(len([N for N in range(1, 1000) if 500 <= R(N) <= 700]))
Ответ: 20
Задание 5. Информатика. ЕГЭ. Поляков-4931
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются ещё несколько разрядов по следующему правилу:
а) если \(N\) чётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи;
б) если \(N\) нечётное, то к нему справа приписываются два нуля, а слева единица.
Например, двоичная запись числа \(1101\) будет преобразована в \(1110100.\)
Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите наибольшее число \(N,\) для которого результат работы данного алгоритма меньше \(1000.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
return int(bn + bin(bn.count('1'))[2:], 2)
return int('1' + bn + '00', 2)
print(max([N for N in range(1, 1000) if R(N) < 1000]))
Ответ: 256
Задание 5. Информатика. ЕГЭ. Поляков-4930
(Пробный КЕГЭ, 2022) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются ещё несколько разрядов по следующему правилу:
а) если \(N\) чётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи;
б) если \(N\) нечётное, то к нему справа приписываются два нуля, а слева единица.
Например, двоичная запись числа \(1101\) будет преобразована в \(1110100.\)
Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите наименьшее число \(N,\) для которого результат работы данного алгоритма больше \(215.\) В ответе это число запишите в десятичной системе счисления..
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
return int(bn + bin(bn.count('1'))[2:], 2)
return int('1' + bn + '00', 2)
print(min([N for N in range(1, 1000) if R(N) > 215]))
Ответ: 23
Задание 5. Информатика. ЕГЭ. Поляков-4814
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Вычисляется сумма \(S_1\) всех чётных цифр десятичной записи числа \(N.\) Если чётных цифр нет, сумма \(S_1\) считается равной \(0.\)
Вычисляется сумма \(S_2\) всех цифр десятичной записи числа \(N,\) стоящих в чётных разрядах. Разряды нумеруются справа налево, начиная с \(0.\)
Вычисляется результат \(R\) как модуль разности \(S_1\) и \(S_2.\)
Например, \(N = 4321.\) Сумма чётных цифр \(S_1 = 4 + 2 = 6.\) Сумма цифр в чётных разрядах \(S_2 = 1 + 3 = 4.\) Результат работы алгоритма \(R = 6 - 4 = 2.\)
Укажите наименьшее число, в результате обработки которого по данному алгоритму получится число \(26.\)
Решение:
Python
def R(N):
ns = str(N)
s1 = sum(int(x) for x in ns if int(x) % 2 == 0)
s2 = sum(int(x) for x in ns[::-1][0::2])
return abs(s1 - s2)
#print(R(4321))
for N in range(1, 10**7):
if R(N) == 26:
print(N)
break
Ответ: 1070909
Задание 5. Информатика. ЕГЭ. Поляков-4813
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Вычисляется сумма \(S_1\) всех нечётных цифр десятичной записи числа \(N.\) Если нечётных цифр нет, сумма \(S_1\) считается равной \(0.\)
Вычисляется сумма \(S_2\) всех цифр десятичной записи числа \(N,\) стоящих в чётных разрядах. Разряды нумеруются справа налево, начиная с \(0.\)
Вычисляется результат \(R\) как модуль разности \(S_1\) и \(S_2.\)
Например, \(N = 1234.\) Сумма нечётных цифр \(S_1 = 1 + 3 = 4.\) Сумма цифр в чётных разрядах \(S_2 = 4 + 2 = 6.\) Результат работы алгоритма \(R = 6 - 4 = 2.\)
Укажите наименьшее число, в результате обработки которого по данному алгоритму получится число \(29.\)
Решение:
Python
def R(N):
ns = str(N)
s1 = sum(int(x) for x in ns if int(x) % 2 == 1)
s2 = sum(int(x) for x in ns[::-1][0::2])
return abs(s1 - s2)
#print(R(4321))
for N in range(1, 10**7):
if R(N) == 29:
print(N)
break
Ответ: 6080818
Задание 5. Информатика. ЕГЭ. Поляков-4812
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Вычисляется сумма \(S_1\) всех нечётных цифр десятичной записи числа \(N.\) Если нечётных цифр нет, сумма \(S_1\) считается равной \(0.\)
Вычисляется сумма \(S_2\) всех цифр десятичной записи числа \(N,\) стоящих на позициях с чётными номерами. Позиции нумеруются слева направо, начиная с \(1.\) Для однозначных чисел сумма \(S_2\) считается равной \(0.\)
Вычисляется результат \(R\) как модуль разности \(S_1\) и \(S_2.\)
Например, \(N = 1234.\) Сумма нечётных цифр \(S_1 = 1 + 3 = 4.\) Сумма цифр в в позициях с чётными номерами \(S_2 = 2 + 4 = 6.\) Результат работы алгоритма \(R = 6 - 4 = 2.\)
Укажите наименьшее число, в результате обработки которого по данному алгоритму получится число \(29.\)
Решение:
Python
def R(N):
ns = str(N)
s1 = sum(int(x) for x in ns if int(x) % 2 == 1)
s2 = sum(int(x) for x in ns[1::2])
return abs(s1 - s2)
#print(R(4321))
for N in range(1, 10**8):
if R(N) == 29:
print(N)
break
Ответ: 16080808
Задание 5. Информатика. ЕГЭ. Поляков-4811
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Вычисляется сумма \(S_1\) всех нечётных цифр десятичной записи числа \(N.\) Если нечётных цифр нет, сумма \(S_1\) считается равной \(0.\)
Вычисляется сумма \(S_2\) всех цифр десятичной записи числа \(N,\) стоящих на позициях с нечётными номерами. Позиции нумеруются слева направо, начиная с \(1.\)
Вычисляется результат \(R\) как модуль разности \(S_1\) и \(S_2.\)
Например, \(N = 4321.\) Сумма нечётных цифр \(S_1 = 3 + 1 = 4.\) Сумма цифр в в позициях с нечётными номерами \(S_2 = 4 + 2 = 6.\) Результат работы алгоритма \(R = 6 - 4 = 2.\)
Укажите наименьшее число, в результате обработки которого по данному алгоритму получится число \(31.\)
Решение:
Python
def R(N):
ns = str(N)
s1 = sum(int(x) for x in ns if int(x) % 2 == 1)
s2 = sum(int(x) for x in ns[::2])
return abs(s1 - s2)
#print(R(4321))
for N in range(1, 10**8):
if R(N) == 31:
print(N)
break
Ответ: 8080818
Задание 5. Информатика. ЕГЭ. Поляков-4810
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Вычисляется сумма \(S_1\) всех нечётных цифр десятичной записи числа \(N.\) Если нечётных цифр нет, сумма \(S_1\) считается равной \(0.\)
Вычисляется сумма \(S_2\) всех цифр десятичной записи числа \(N,\) стоящих на позициях с чётными номерами. Позиции нумеруются слева направо, начиная с \(1.\) Для однозначных чисел сумма \(S_2\) считается равной \(0.\)
Вычисляется результат \(R\) как модуль разности \(S_1\) и \(S_2.\)
Например, \(N = 1234.\) Сумма нечётных цифр \(S_1 = 1 + 3 = 4.\) Сумма цифр в в позициях с чётными номерами \(S_2 = 2 + 4 = 6.\) Результат работы алгоритма \(R = 6 - 4 = 2.\)
Укажите наименьшее число, в результате обработки которого по данному алгоритму получится число \(30.\)
Решение:
Python
def R(N):
ns = str(N)
s1 = sum(int(x) for x in ns if int(x) % 2 == 1)
s2 = sum(int(x) for x in ns[1::2])
return abs(s1 - s2)
#print(R(4321))
for N in range(1, 10**8):
if R(N) == 30:
print(N)
break
Ответ: 3090909
Задание 5. Информатика. ЕГЭ. Поляков-4809
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Вычисляется сумма \(S_1\) всех чётных цифр десятичной записи числа \(N.\) Если чётных цифр нет, сумма \(S_1\) считается равной \(0.\)
Вычисляется сумма \(S_2\) всех цифр десятичной записи числа \(N,\) стоящих на позициях с нечётными номерами. Позиции нумеруются слева направо, начиная с \(1.\)
Вычисляется результат \(R\) как модуль разности \(S_1\) и \(S_2.\)
Например, \(N = 1234.\) Сумма чётных цифр \(S_1 = 2 + 4 = 6.\) Сумма цифр в в позициях с нечётными номерами \(S_2 = 1 + 3 = 4.\) Результат работы алгоритма \(R = 6 - 4 = 2.\)
Укажите наименьшее число, в результате обработки которого по данному алгоритму получится число \(27.\)
Решение:
Python
def R(N):
ns = str(N)
s1 = sum(int(x) for x in ns if int(x) % 2 == 0)
s2 = sum(int(x) for x in ns[::2])
return abs(s1 - s2)
#print(R(4321))
for N in range(1, 10**8):
if R(N) == 27:
print(N)
break
Ответ: 90909
Задание 5. Информатика. ЕГЭ. Поляков-4808
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Вычисляется сумма \(S_1\) всех чётных цифр десятичной записи числа \(N.\) Если чётных цифр нет, сумма \(S_1\) считается равной \(0.\)
Вычисляется сумма \(S_2\) всех цифр десятичной записи числа \(N,\) стоящих на позициях с чётными номерами. Позиции нумеруются слева направо, начиная с \(1.\) Для однозначных чисел сумма \(S_2\) считается равной \(0.\)
Вычисляется результат \(R\) как модуль разности \(S_1\) и \(S_2.\)
Например, \(N = 4321.\) Сумма чётных цифр \(S_1 = 4 + 2 = 6.\) Сумма цифр в в позициях с чётными номерами \(S_2 = 3 + 1 = 4.\) Результат работы алгоритма \(R = 6 - 4 = 2.\)
Укажите наименьшее число, в результате обработки которого по данному алгоритму получится число \(29.\)
Решение:
Python
def R(N):
ns = str(N)
s1 = sum(int(x) for x in ns if int(x) % 2 == 0)
s2 = sum(int(x) for x in ns[1::2])
return abs(s1 - s2)
#print(R(4321))
for N in range(1, 10**8):
if R(N) == 29:
print(N)
break
Ответ: 6080818
Задание 5. Информатика. ЕГЭ. Поляков-4807
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Вычисляется сумма \(S_1\) всех чётных цифр десятичной записи числа \(N.\) Если чётных цифр нет, сумма \(S_1\) считается равной \(0.\)
Вычисляется сумма \(S_2\) всех цифр десятичной записи числа \(N,\) стоящих на позициях с нечётными номерами. Позиции нумеруются слева направо, начиная с \(1.\)
Вычисляется результат \(R\) как модуль разности \(S_1\) и \(S_2.\)
Например, \(N = 1234.\) Сумма чётных цифр \(S_1 = 2 + 4 = 6.\) Сумма цифр в в позициях с нечётными номерами \(S_2 = 1 + 3 = 4.\) Результат работы алгоритма \(R = 6 - 4 = 2.\)
Укажите наименьшее число, в результате обработки которого по данному алгоритму получится число \(28.\)
Решение:
Python
def R(N):
ns = str(N)
s1 = sum(int(x) for x in ns if int(x) % 2 == 0)
s2 = sum(int(x) for x in ns[::2])
return abs(s1 - s2)
#print(R(4321))
for N in range(1, 10**8):
if R(N) == 28:
print(N)
break
Ответ: 1090909
Задание 5. Информатика. ЕГЭ. Поляков-4444
(А. Богданов) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Если \(N\) нечетное, то в конец полученной записи (справа) дописывается \(0,\) в начало \(1;\) если \(N\) четное в конец и начало дописывается по две единицы.
Результат переводится в десятичную систему и выводится на экран.
Например, \(N = 14_{10} = 1110_2.\) Число четное, следовательно, добавляем по две единицы по краям, получается \(11111011_2 = 251_{10}\)
Укажите наибольшее число, меньшее \(126,\) которое может являться результатом работы автомата.
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2:
return int('1' + bn + '0', 2)
return int('11' + bn + '11', 2)
#print(R(14))
print(max(R(N) for N in range(1, 300) if R(N) < 126))
Ответ: 123
Задание 5. Информатика. ЕГЭ. Поляков-4222
(В.Н. Шубинкин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится шестнадцатеричная запись числа \(N // 2,\) где "\(//\)" — операция деления нацело.
К этой записи дописывается ещё три разряда по следующему правилу: если \(N\) не делится на \(4,\) то слева к нему приписывается "\(F\)", а справа — "\(A0\)". В противном случае слева приписывается "\(15\)", а справа "\(C\)".
Например, \(N = 4_{10} \to 2_{16} \to 152C_{16} = 5420_{10} = R.\)
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N)\) является шестнадцатеричной записью искомого числа R. Укажите наибольшее число \(N,\) для которого результат работы алгоритма меньше \(65536.\) В ответ запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
hn = hex(N // 2)[2:]
if N % 4:
return int('F' + hn + 'A0', 16)
return int('15' + hn + 'C', 16)
#print(R(4))
print(max(N for N in range(1, 65536) if R(N) < 65536))
Ответ: 31
Задание 5. Информатика. ЕГЭ. Поляков-4221
(В.Н. Шубинкин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится четверичная запись числа \(N.\)
К этой записи дописывается ещё три или четыре разряда по следующему правилу: если \(N\) нечётное, то слева к нему приписывается "\(2\)", а справа — "\(11\)". В противном случае слева приписывается "\(13\)", а справа "\(02\)".
Например, \(N = 45_{10} = 231_4 \to 223111_4 = 2773_{10} = R\)
Полученная таким образом запись (в ней на три или четыре разряда больше, чем в записи исходного числа \(N)\) является четверичной записью искомого числа \(R.\) Укажите наименьшее число \(R,\) большее \(1000,\) которое может быть получено с помощью описанного алгоритма. В ответ запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph = '0123'
res = ''
while n:
res = alph[n % 4] + res
n //= 4
return res
def R(N):
qn = conv(N)
if N % 2:
return int('2' + qn + '11', 4)
return int('13' + qn + '02', 4)
#print(R(45))
print(min(R(N) for N in range(1, 1000) if R(N) > 1000))
Ответ: 1858
Задание 5. Информатика. ЕГЭ. Поляков-4220
(В.Н. Шубинкин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
К этой записи дописывается ещё три или четыре разряда по следующему правилу: если \(N\) нечётное, то слева к нему приписывается "\(10\)", а справа — "\(11\)". В противном случае слева приписывается "\(1\)", а справа "\(00\)".
Например, \(N = 5_{10} = 101_2 \to 1010111_2 = 87_{10} = R.\)
Полученная таким образом запись (в ней на три или четыре разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите наименьшее число \(R,\) большее \(1023,\) которое может быть получено с помощью описанного алгоритма. В ответ запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2:
return int('10' + bn + '11', 2)
return int('1' + bn + '00', 2)
#print(R(5))
print(min(R(N) for N in range(1, 2000) if R(N) > 1023))
Ответ: 1287
Задание 5. Информатика. ЕГЭ. Поляков-4219
(В.Н. Шубинкин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
К этой записи дописывается ещё три или четыре разряда по следующему правилу: если \(N\) нечётное, то слева к нему приписывается "\(1\)", а справа — "\(11\)". В противном случае слева приписывается "\(11\)", а справа "\(00\)".
Например, \(N = 5_{10} = 101_2 \to 110111_2 = 55_{10} = R.\)
Полученная таким образом запись (в ней на три или четыре разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите наибольшее число \(R,\) меньшее \(127,\) которое может быть получено с помощью описанного алгоритма. В ответ запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2:
return int('1' + bn + '11', 2)
return int('11' + bn + '00', 2)
#print(R(5))
print(max(R(N) for N in range(1, 2000) if R(N) < 127))
Ответ: 120
Задание 5. Информатика. ЕГЭ. Поляков-4194
(С. Скопинцева) Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Число \(N\) переводим в двоичную запись.
К этой записи справа дописывается один разряд по следующему правилу: если количество единиц в двоичной записи числа больше количества нулей, то справа дописывается единица, иначе дописывается \(0.\)
К полученной записи повторно применяется алгоритм из п. 2.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите наибольшее число \(R,\) меньшее \(57,\) которое может быть получено в результате работы данного алгоритма. В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(int(bn.count('1') > bn.count('0')))
bn += str(int(bn.count('1') > bn.count('0')))
return int(bn, 2)
print(max(R(N) for N in range(2, 60) if R(N) < 57))
Ответ: 55
Задание 5. Информатика. ЕГЭ. Поляков-4131
(А. Богданов) Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Число \(N\) переводим в двоичную запись.
Инвертируем все биты числа кроме первого.
Переводим в десятичную запись.
Складываем результат с исходным числом \(N.\)
Полученное число является искомым числом \(R.\) Укажите наименьшее нечетное число \(N\), для которого результат работы данного алгоритма больше \(99.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
t = bn[1:]
t = t.replace('0', 'x').replace('1', '0').replace('x', '1')
return N + int(bn[0] + t, 2)
for N in range(3, 1000, 2):
if R(N) > 99:
print(N)
break
Ответ: 65
Задание 5. Информатика. ЕГЭ. Поляков-4047
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Если исходное число кратно \(3,\) оно делится на \(3,\) иначе из него вычитается \(1.\)
Если полученное на предыдущем шаге число кратно \(5,\) оно делится на \(5,\) иначе из него вычитается \(1.\)
Если полученное на предыдущем шаге число кратно \(11,\) оно делится на \(11,\) иначе из него вычитается \(1.\)
Число, полученное на шаге 3, считается результатом работы алгоритма.
Сколько существует различных натуральных чисел \(N,\) при обработке которых получится \(R = 8?\)
Решение:
Python
def R(N):
N = N // 3 if N % 3 == 0 else N - 1
N = N // 5 if N % 5 == 0 else N - 1
N = N // 11 if N % 11 == 0 else N - 1
return N
print(sum(R(N) == 8 for N in range(2, 10000)))
Ответ: 4
Задание 5. Информатика. ЕГЭ. Поляков-4046
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Если исходное число кратно \(3,\) оно делится на \(3,\) иначе из него вычитается \(1.\)
Если полученное на предыдущем шаге число кратно \(7,\) оно делится на \(7,\) иначе из него вычитается \(1.\)
Если полученное на предыдущем шаге число кратно \(11,\) оно делится на \(11,\) иначе из него вычитается \(1.\)
Число, полученное на шаге 3, считается результатом работы алгоритма.
Сколько существует различных натуральных чисел \(N,\) при обработке которых получится \(R = 6?\)
Решение:
Python
def R(N):
N = N // 3 if N % 3 == 0 else N - 1
N = N // 7 if N % 7 == 0 else N - 1
N = N // 11 if N % 11 == 0 else N - 1
return N
print(sum(R(N) == 6 for N in range(2, 10000)))
Ответ: 7
Задание 5. Информатика. ЕГЭ. Поляков-4045
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Если исходное число кратно \(2,\) оно делится на \(2,\) иначе из него вычитается \(1.\)
Если полученное на предыдущем шаге число кратно \(5,\) оно делится на \(5,\) иначе из него вычитается \(1.\)
Если полученное на предыдущем шаге число кратно \(7,\) оно делится на \(7,\) иначе из него вычитается \(1.\)
Число, полученное на шаге 3, считается результатом работы алгоритма.
Сколько существует различных натуральных чисел \(N,\) при обработке которых получится \(R = 6?\)
Решение:
Python
def R(N):
N = N // 2 if N % 2 == 0 else N - 1
N = N // 5 if N % 5 == 0 else N - 1
N = N // 7 if N % 7 == 0 else N - 1
return N
print(sum(R(N) == 6 for N in range(2, 10000)))
Ответ: 3
Задание 5. Информатика. ЕГЭ. Поляков-4044
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Если исходное число кратно \(2,\) оно делится на \(2,\) иначе из него вычитается \(1.\)
Если полученное на предыдущем шаге число кратно \(3,\) оно делится на \(3,\) иначе из него вычитается \(1.\)
Если полученное на предыдущем шаге число кратно \(7,\) оно делится на \(7,\) иначе из него вычитается \(1.\)
Число, полученное на шаге 3, считается результатом работы алгоритма.
Сколько существует различных натуральных чисел \(N,\) при обработке которых получится \(R = 2?\)
Решение:
Python
def R(N):
N = N // 2 if N % 2 == 0 else N - 1
N = N // 3 if N % 3 == 0 else N - 1
N = N // 7 if N % 7 == 0 else N - 1
return N
print(sum(R(N) == 2 for N in range(2, 10000)))
Ответ: 5
Задание 5. Информатика. ЕГЭ. Поляков-4043
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Если исходное число кратно \(2,\) оно делится на \(2,\) иначе из него вычитается \(1.\)
Если полученное на предыдущем шаге число кратно \(3,\) оно делится на \(3,\) иначе из него вычитается \(1.\)
Если полученное на предыдущем шаге число кратно \(5,\) оно делится на \(5,\) иначе из него вычитается \(1.\)
Число, полученное на шаге 3, считается результатом работы алгоритма.
Сколько существует различных натуральных чисел \(N,\) при обработке которых получится \(R = 3?\)
Решение:
Python
def R(N):
N = N // 2 if N % 2 == 0 else N - 1
N = N // 3 if N % 3 == 0 else N - 1
N = N // 5 if N % 5 == 0 else N - 1
return N
print(sum(R(N) == 3 for N in range(2, 10000)))
Ответ: 6
Задание 5. Информатика. ЕГЭ. Поляков-3941
(Е. Джобс) Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
В этой записи последний ноль заменяется на первые две цифры полученной записи. Если нуля нет, алгоритм аварийно завершается.
Запись записывается справа налево (в обратную сторону).
Результат переводится в десятичную систему счисления.
Для скольких значений \(N\) в результате работы алгоритма получится число \(127?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('0') == 0:
return -1
f = bn[:2]
return int(bn[::-1].replace('0', f[::-1], 1), 2)
print(sum(R(N) == 127 for N in range(2, 1000)))
Ответ: 4
Задание 5. Информатика. ЕГЭ. Поляков-3940
(Е. Джобс) Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
В этой записи последний ноль заменяется на первые две цифры полученной записи. Если нуля нет, алгоритм аварийно завершается.
Запись записывается справа налево (в обратную сторону).
Результат переводится в десятичную систему счисления.
Для какого минимального значения \(N\) в результате работы алгоритма получится число \(123?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('0') == 0:
return -1
f = bn[:2]
return int(bn[::-1].replace('0', f[::-1], 1), 2)
print(min(N for N in range(2, 1000) if R(N) == 123))
Ответ: 47
Задание 5. Информатика. ЕГЭ. Поляков-3939
(Е. Джобс) Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
В этой записи последний ноль заменяется на первые две цифры полученной записи. Если нуля нет, алгоритм аварийно завершается.
Запись записывается справа налево (в обратную сторону).
Результат переводится в десятичную систему счисления.
Для какого максимального значения \(N\) в результате работы алгоритма получится число \(119?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('0') == 0:
return -1
f = bn[:2]
return int(bn[::-1].replace('0', f[::-1], 1), 2)
print(max(N for N in range(2, 1000) if R(N) == 119))
Ответ: 58
Задание 5. Информатика. ЕГЭ. Поляков-3938
(Е. Джобс) Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Складываются все цифры полученной двоичной записи. В конец записи (справа) дописывается остаток от деления полученной суммы на \(2.\)
Если количество единиц в двоичной записи числа \(N\) больше количества нулей, справа дописывается \(0,\) иначе \(1.\)
Результат переводится в десятичную систему счисления.
Сколько различных чисел, принадлежащих отрезку \([50; \, 80],\) может получиться в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
res = bn + str(bn.count('1') % 2)
res += str(int(bn.count('1') <= bn.count('0')))
return int(res, 2)
print(sum(50 <= R(N) <= 80 for N in range(2, 1000)))
Ответ: 7
Задание 5. Информатика. ЕГЭ. Поляков-3937
(Е. Джобс) Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Складываются все цифры полученной двоичной записи. В конец записи (справа) дописывается остаток от деления полученной суммы на \(2.\)
Если количество единиц в двоичной записи числа \(N\) больше количества нулей, справа дописывается \(0,\) иначе \(1.\)
Результат переводится в десятичную систему счисления.
Какое наименьшее число, большее \(80,\) может получиться в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
res = bn + str(bn.count('1') % 2)
res += str(int(bn.count('1') <= bn.count('0')))
return int(res, 2)
print(min(R(N) for N in range(2, 200) if R(N) > 80))
Ответ: 81
Задание 5. Информатика. ЕГЭ. Поляков-3912
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наименьшем исходном числе \(N > 100\) в результате работы алгоритма получится число, которое делится на \(4\) и не делится на \(8?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(min(N for N in range(100, 500) if R(N) % 4 == 0 and R(N) % 8 != 0))
Ответ: 135
Задание 5. Информатика. ЕГЭ. Поляков-3911
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наибольшем исходном числе \(N < 500\) в результате работы алгоритма получится число, которое делится на \(4\) и не делится на \(8?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(max(N for N in range(2, 500) if R(N) % 4 == 0 and R(N) % 8 != 0))
Ответ: 225
Задание 5. Информатика. ЕГЭ. Поляков-3910
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наибольшем исходном числе \(N < 100\) в результате работы алгоритма получится число, которое делится на \(4\) и не делится на \(8?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(max(N for N in range(2, 100) if R(N) % 4 == 0 and R(N) % 8 != 0))
Ответ: 49
Задание 5. Информатика. ЕГЭ. Поляков-3909
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наибольшем исходном числе \(N < 750\) в результате работы алгоритма получится чётное число, которое не делится на \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(max(N for N in range(2, 750) if R(N) % 2 == 0 and R(N) % 4 != 0))
Ответ: 480
Задание 5. Информатика. ЕГЭ. Поляков-3908
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наибольшем исходном числе \(N < 80\) в результате работы алгоритма получится чётное число, которое не делится на \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(max(N for N in range(2, 80) if R(N) % 2 == 0 and R(N) % 4 != 0))
Ответ: 76
Задание 5. Информатика. ЕГЭ. Поляков-3907
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наибольшем исходном числе \(N < 100\) в результате работы алгоритма получится чётное число, которое не делится на \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(max(N for N in range(2, 100) if R(N) % 2 == 0 and R(N) % 4 != 0))
Ответ: 98
Задание 5. Информатика. ЕГЭ. Поляков-3906
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наименьшем исходном числе \(N > 60\) в результате работы алгоритма получится чётное число, которое не делится на \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(min(N for N in range(61, 1000) if R(N) % 2 == 0 and R(N) % 4 != 0))
Ответ: 67
Задание 5. Информатика. ЕГЭ. Поляков-3905
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наименьшем исходном числе \(N > 90\) в результате работы алгоритма получится чётное число, которое не делится на \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(min(N for N in range(91, 1000) if R(N) % 2 == 0 and R(N) % 4 != 0))
Ответ: 97
Задание 5. Информатика. ЕГЭ. Поляков-3904
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наименьшем исходном числе \(N > 100\) в результате работы алгоритма получится чётное число, которое не делится на \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(min(N for N in range(101, 1000) if R(N) % 2 == 0 and R(N) % 4 != 0))
Ответ: 104
Задание 5. Информатика. ЕГЭ. Поляков-3903
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наибольшем исходном числе \(N < 70\) в результате работы алгоритма получится число, кратное \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(max(N for N in range(2, 70) if R(N) % 4 == 0))
Ответ: 63
Задание 5. Информатика. ЕГЭ. Поляков-3902
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наибольшем исходном числе \(N < 90\) в результате работы алгоритма получится число, кратное \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(max(N for N in range(2, 90) if R(N) % 4 == 0))
Ответ: 87
Задание 5. Информатика. ЕГЭ. Поляков-3901
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наибольшем исходном числе \(N < 100\) в результате работы алгоритма получится число, кратное \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(max(N for N in range(2, 100) if R(N) % 4 == 0))
Ответ: 95
Задание 5. Информатика. ЕГЭ. Поляков-3900
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наименьшем исходном числе \(N > 95\) в результате работы алгоритма получится число, кратное \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(min(N for N in range(96, 1000) if R(N) % 4 == 0))
Ответ: 103
Задание 5. Информатика. ЕГЭ. Поляков-3899
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наименьшем исходном числе \(N > 80\) в результате работы алгоритма получится число, кратное \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(min(N for N in range(81, 1000) if R(N) % 4 == 0))
Ответ: 87
Задание 5. Информатика. ЕГЭ. Поляков-3898
Алгоритм получает на вход натуральное число \(N > 1\) и строит по нему новое число \(R\) следующим образом:
Строится двоичная запись числа \(N.\)
Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется её последняя цифра. В противном случае в конец записи добавляется цифра, которая встречается реже.
Шаг 2 повторяется ещё два раза.
Результат переводится в десятичную систему счисления.
При каком наименьшем исходном числе \(N > 65\) в результате работы алгоритма получится число, кратное \(4?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
for _ in range(3):
bn += bn[-1] if bn.count('0') == bn.count('1') else str(int(bn.count('1') < bn.count('0')))
return int(bn, 2)
print(min(N for N in range(66, 1000) if R(N) % 4 == 0))
Ответ: 79
Задание 5. Информатика. ЕГЭ. Поляков-3526
(Е. Джобс) Автомат обрабатывает десятичное натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа.
Полученное в п.1 число записывается справа налево (переворачивается).
Из первого числа вычитается второе, результат записывается в десятичной системе счисления.
Найдите максимальное возможное число, которое может являться результатом работы алгоритма.
Решение:
Python
def R(N):
bn = f'{N:80b}'
return int(bn, 2) - int(bn[::-1], 2)
print(max(R(N) for N in range(1, 256)))
Ответ: 225
Задание 5. Информатика. ЕГЭ. Поляков-3525
(Е. Джобс) Автомат обрабатывает десятичное натуральное число \(N\) по следующему алгоритму:
Строится двоично-десятичное представление: каждый разряд десятичного числа кодируется с помощью \(4\) битов, затем полученные коды записываются друг за другом с сохранением незначащих нулей.
Полученная двоичная последовательность инвертируется — все нули меняются на единицы, а все единицы на нули.
Полученное в результате этих операций число переводится в десятичную систему счисления.
Пример. Дано число \(13.\) Оно преобразуется следующим образом: $$13 \to 00010011_{ДД} \to 11101100_2 \to 236.$$ Здесь нижний индекс «ДД» обозначает двоично-десятичную систему. Укажите число \(N,\) в результате обработки которого с помощью этого алгоритма получается число \(151.\)
Решение:
Python
def R(N):
ans = ''.join(f'{int(x):04b}' for x in str(N))
ans = ans.replace('0', 'x').replace('1', '0').replace('x', '1')
return int(ans, 2)
#print(R(13))
for N in range(1, 200):
if R(N) ==151:
print(N)
break
Ответ: 68
Задание 5. Информатика. ЕГЭ. Поляков-3524
(Е. Джобс) Автомат обрабатывает десятичное натуральное число \(N\) по следующему алгоритму:
В шестеричной записи числа \(N\) дублируется последняя цифра.
Получившееся число переводится в двоичное представление.
В получившейся записи дублируется последняя цифра.
Полученное в результате этих операций число переводится в десятичную систему счисления.
Пример. Дано число \(13\). Оно преобразуется следующим образом: $$13 \to 21_6 \to 211_6 \to 1001111_2 \to 10011111_2 \to 159.$$ Укажите максимальное число, меньшее \(344,\) которое может являться результатом выполнения алгоритма.
Решение:
Python
def conv(n):
alph = '012345'
res = ''
while n:
res = alph[n % 6] + res
n //= 6
return res
def R(N):
sn = conv(N)
sn += sn[-1]
bn = bin(int(sn, 6))[2:]
bn += bn[-1]
return int(bn, 2)
#print(R(13))
print(max(R(N) for N in range(1, 400) if R(N) < 344))
Ответ: 331
Задание 5. Информатика. ЕГЭ. Поляков-3523
(Е. Джобс) Автомат обрабатывает десятичное натуральное число \(N\) по следующему алгоритму:
К десятичной записи справа приписывается последняя цифра числа \(N.\)
Получившееся число переводится в двоичное представление.
К двоичной записи этого числа справа дописывается бит четности: единица, если количество единиц в двоичной записи нечетно, и ноль, если количество единиц четно.
Полученное в результате этих операций число переводится в десятичную систему счисления.
Пример. Дано число \(13.\) Оно преобразуется следующим образом:$$13 \to 133 \to 10000101_2 \to 100001011_2 \to 267.$$ Укажите минимальное число \(N,\) после обработки которого получится число, превышающее \(413.\)
Решение:
Python
def R(N):
N = N * 10 + N % 10
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
return int(bn, 2)
#print(R(13))
print(min(N for N in range(1, 1000) if R(N) > 413))
Ответ: 21
Задание 5. Информатика. ЕГЭ. Поляков-3522
(Е. Джобс) Автомат обрабатывает десятичное натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
К этой записи справа дописывается \(0,\) если число нечетное, и слева \(1\) в обратном случае.
Если единиц в двоичном числе получилось четное количество, справа дописывается \(1,\) иначе \(0.\)
Например, двоичная запись \(1010\) числа \(10\) будет преобразована в \(110100.\) Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью числа — результата работы данного алгоритма. Укажите минимальное число \(N,\) для которого результат работы алгоритма будет больше \(228.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bn + '0' if N % 2 else '1' + bn
bn += '1' if bn.count('1') % 2 == 0 else '0'
return int(bn, 2)
print(min(N for N in range(1, 1000) if R(N) > 228))
Ответ: 50
Задание 5. Информатика. ЕГЭ. Поляков-3521
(Е. Джобс) Автомат обрабатывает десятичное натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Если число чётное, справа (в конец двоичной записи числа) приписывается \(1,\) в противном случае справа приписывается \(0.\)
Для полученного числа пункт 2 повторяется ещё один раз.
Например, двоичная запись \(1001\) числа \(9\) будет преобразована в \(100101.\) Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью числа — результата работы данного алгоритма. Укажите максимальное число \(N,\) для которого результат работы алгоритма будет меньше \(171.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '1' if bn[-1] == '0' else '0'
bn += '1' if bn[-1] == '0' else '0'
return int(bn, 2)
print(max(N for N in range(1, 1000) if R(N) < 171))
Ответ: 42
Задание 5. Информатика. ЕГЭ. Поляков-3520
(Е. Джобс) Автомат обрабатывает десятичное натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
К этой записи дописываются разряды по следующему правилу: если единиц больше, чем нулей, в конец приписывается \(0,\) иначе в начало строки приписывается две единицы.
Пункт 2 повторяется ещё один раз.
Полученная таким образом запись является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) при вводе которого получится значение \(R\) больше, чем \(500.\) В ответе запишите это число в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bn + '0' if bn.count('1') > bn.count('0') else '11' + bn
bn = bn + '0' if bn.count('1') > bn.count('0') else '11' + bn
return int(bn, 2)
print(min(N for N in range(1, 1000) if R(N) > 500))
Ответ: 32
Задание 5. Информатика. ЕГЭ. Поляков-3455
Автомат обрабатывает десятичное натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
К полученному числу справа дописывается \(0,\) если в числе единиц больше, чем нулей; иначе дописывается \(1.\)
Из середины двоичного числа убирается \(2\) разряда, если количество разрядов получилось четным, и \(3\) разряда, если нечетное.
Результат переводится в десятичную систему.
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N\): \(11 = 1011_2\)
Единиц больше, чем нулей, новая запись \(10110_2.\)
Длина нечётная, удаляем три средних разряда, новая запись \(10_2.\)
Десятичное значение полученного числа \(2.\)
Сколько различных значений может получиться на отрезке \([50; \, 100]\) в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(int(bn.count('1') <= bn.count('0')))
m = len(bn) // 2
return int(bn[:m-1] + bn[-m+1:], 2)
#print(R(11))
print(len(set([R(N) for N in range(11, 10_000) if 50 <= R(N) <= 100])))
Ответ: 13
Задание 5. Информатика. ЕГЭ. Поляков-3454
Автомат обрабатывает десятичное натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
К полученному числу справа дописывается \(0,\) если в числе единиц больше, чем нулей; иначе дописывается \(1.\)
Из середины двоичного числа убирается \(2\) разряда, если количество разрядов получилось четным, и \(3\) разряда, если нечетное.
Результат переводится в десятичную систему.
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N\): \(11 = 1011_2\)
Единиц больше, чем нулей, новая запись \(10110_2.\)
Длина нечётная, удаляем три средних разряда, новая запись \(10_2.\)
Десятичное значение полученного числа \(2.\)
Для скольких различных значений \(N\) в результате работы автомата получается число \(58?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(int(bn.count('1') <= bn.count('0')))
m = len(bn) // 2
return int(bn[:m-1] + bn[-m+1:], 2)
#print(R(11))
print(len([N for N in range(11, 10_000) if R(N) == 58]))
Ответ: 11
Задание 5. Информатика. ЕГЭ. Поляков-3453
(Е. Джобс) Автомат обрабатывает десятичное натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
К полученному числу справа дописывается \(0,\) если в числе единиц больше, чем нулей; иначе дописывается \(1.\)
Из середины двоичного числа убирается \(2\) разряда, если количество разрядов получилось четным, и \(3\) разряда, если нечетное.
Результат переводится в десятичную систему.
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N\): \(11 = 1011_2\)
Единиц больше, чем нулей, новая запись \(10110_2.\)
Длина нечётная, удаляем три средних разряда, новая запись \(10_2.\)
Десятичное значение полученного числа \(2.\)
Каково должно быть исходное число, чтобы в результате его обработки автомат получил значение \(55?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(int(bn.count('1') <= bn.count('0')))
m = len(bn) // 2
return int(bn[:m-1] + bn[-m+1:], 2)
#print(R(11))
for N in range(11, 1000):
if R(N) == 55:
print(N)
break
Ответ: 195
Задание 5. Информатика. ЕГЭ. Поляков-3211
Автомат обрабатывает натуральное число \(N > 1\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
В конец записи (справа) дописывается вторая справа цифра двоичной записи.
В конец записи (справа) дописывается вторая слева цифра двоичной записи.
Результат переводится в десятичную систему.
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N:\) \(11 = 1011_2\)
Вторая справа цифра \(1,\) новая запись \(10111_2.\)
Вторая слева цифра \(0,\) новая запись \(101110_2.\)
Десятичное значение полученного числа \(46.\)
Для скольких значений \(N\) в результате работы алгоритма получится число, принадлежащее отрезку \([150; \, 250]?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-2]
bn += bn[1]
return int(bn, 2)
#print(R(11))
q = 0
for N in range(1000, 1, -1):
q += 150 <= R(N) <= 250
print(q)
Ответ: 24
Задание 5. Информатика. ЕГЭ. Поляков-3210
Автомат обрабатывает натуральное число \(N > 1\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
В конец записи (справа) дописывается вторая справа цифра двоичной записи.
В конец записи (справа) дописывается вторая слева цифра двоичной записи.
Результат переводится в десятичную систему.
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N:\) \(11 = 1011_2\)
Вторая справа цифра \(1,\) новая запись \(10111_2.\)
Вторая слева цифра \(0,\) новая запись \(101110_2.\)
Десятичное значение полученного числа \(46.\)
Для скольких значений \(N\) в результате работы алгоритма получится число, принадлежащее отрезку \([150; \, 200]?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-2]
bn += bn[1]
return int(bn, 2)
#print(R(11))
q = 0
for N in range(1000, 1, -1):
q += 150 <= R(N) <= 200
print(q)
Ответ: 12
Задание 5. Информатика. ЕГЭ. Поляков-3209
Автомат обрабатывает натуральное число \(N > 1\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
В конец записи (справа) дописывается вторая справа цифра двоичной записи.
В конец записи (справа) дописывается вторая слева цифра двоичной записи.
Результат переводится в десятичную систему.
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N:\) \(11 = 1011_2\)
Вторая справа цифра \(1,\) новая запись \(10111_2.\)
Вторая слева цифра \(0,\) новая запись \(101110_2.\)
Десятичное значение полученного числа \(46.\)
Для скольких значений \(N\) в результате работы алгоритма получится число, принадлежащее отрезку \([100; \, 150]?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-2]
bn += bn[1]
return int(bn, 2)
#print(R(11))
q = 0
for N in range(1000, 1, -1):
q += 100 <= R(N) <= 150
print(q)
Ответ: 13
Задание 5. Информатика. ЕГЭ. Поляков-3208
Автомат обрабатывает натуральное число \(N > 1\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
В конец записи (справа) дописывается вторая справа цифра двоичной записи.
В конец записи (справа) дописывается вторая слева цифра двоичной записи.
Результат переводится в десятичную систему.
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N:\) \(11 = 1011_2\)
Вторая справа цифра \(1,\) новая запись \(10111_2.\)
Вторая слева цифра \(0,\) новая запись \(101110_2.\)
Десятичное значение полученного числа \(46.\)
При каком наибольшем числе \(N\) в результате работы алгоритма получится число, не превышающее \(190?\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-2]
bn += bn[1]
return int(bn, 2)
#print(R(11))
for N in range(1000, 1, -1):
if R(N) <= 190:
print(N)
break
Ответ: 47
Задание 5. Информатика. ЕГЭ. Поляков-3207
Автомат обрабатывает натуральное число \(N > 1\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
В конец записи (справа) дописывается вторая справа цифра двоичной записи.
В конец записи (справа) дописывается вторая слева цифра двоичной записи.
Результат переводится в десятичную систему.
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N:\) \(11 = 1011_2\)
Вторая справа цифра \(1,\) новая запись \(10111_2.\)
Вторая слева цифра \(0,\) новая запись \(101110_2.\)
Десятичное значение полученного числа \(46.\)
При каком наибольшем числе \(N\) в результате работы алгоритма получится число, не превышающее \(165?\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-2]
bn += bn[1]
return int(bn, 2)
#print(R(11))
for N in range(1000, 1, -1):
if R(N) <= 165:
print(N)
break
Ответ: 41
Задание 5. Информатика. ЕГЭ. Поляков-3206
Автомат обрабатывает натуральное число \(N > 1\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
В конец записи (справа) дописывается вторая справа цифра двоичной записи.
В конец записи (справа) дописывается вторая слева цифра двоичной записи.
Результат переводится в десятичную систему.
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N:\) \(11 = 1011_2\)
Вторая справа цифра \(1,\) новая запись \(10111_2.\)
Вторая слева цифра \(0,\) новая запись \(101110_2.\)
Десятичное значение полученного числа \(46.\)
При каком наибольшем числе \(N\) в результате работы алгоритма получится число, не превышающее \(128?\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-2]
bn += bn[1]
return int(bn, 2)
#print(R(11))
for N in range(1000, 1, -1):
if R(N) <= 128:
print(N)
break
Ответ: 32
Задание 5. Информатика. ЕГЭ. Поляков-3205
Автомат обрабатывает натуральное число \(N > 1\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
В конец записи (справа) дописывается вторая справа цифра двоичной записи.
В конец записи (справа) дописывается вторая слева цифра двоичной записи.
Результат переводится в десятичную систему.
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N:\) \(11 = 1011_2\)
Вторая справа цифра \(1,\) новая запись \(10111_2.\)
Вторая слева цифра \(0,\) новая запись \(101110_2.\)
Десятичное значение полученного числа \(46.\)
При каком наименьшем числе \(N\) в результате работы алгоритма получится \(R > 210?\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-2]
bn += bn[1]
return int(bn, 2)
#print(R(11))
for N in range(2, 1000):
if R(N) > 210:
print(N)
break
Ответ: 53
Задание 5. Информатика. ЕГЭ. Поляков-3204
Автомат обрабатывает натуральное число \(N > 1\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
В конец записи (справа) дописывается вторая справа цифра двоичной записи.
В конец записи (справа) дописывается вторая слева цифра двоичной записи.
Результат переводится в десятичную систему.
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N:\) \(11 = 1011_2\)
Вторая справа цифра \(1,\) новая запись \(10111_2.\)
Вторая слева цифра \(0,\) новая запись \(101110_2.\)
Десятичное значение полученного числа \(46.\)
При каком наименьшем числе \(N\) в результате работы алгоритма получится \(R > 170?\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-2]
bn += bn[1]
return int(bn, 2)
#print(R(11))
for N in range(2, 1000):
if R(N) > 170:
print(N)
break
Ответ: 43
Задание 5. Информатика. ЕГЭ. Поляков-3203
Автомат обрабатывает натуральное число \(N > 1\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
В конец записи (справа) дописывается вторая справа цифра двоичной записи.
В конец записи (справа) дописывается вторая слева цифра двоичной записи.
Результат переводится в десятичную систему.
Пример. Дано число \(N = 11.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N:\) \(11 = 1011_2\)
Вторая справа цифра \(1,\) новая запись \(10111_2.\)
Вторая слева цифра \(0,\) новая запись \(101110_2.\)
Десятичное значение полученного числа \(46.\)
При каком наименьшем числе \(N\) в результате работы алгоритма получится \(R > 100?\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-2]
bn += bn[1]
return int(bn, 2)
#print(R(11))
for N in range(2, 1000):
if R(N) > 100:
print(N)
break
Ответ: 25
Задание 5. Информатика. ЕГЭ. Поляков-3013
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N-1.\)
Инвертируются все разряды исходного числа (\(0\) заменяется на \(1,\) \(1\) на \(0).\)
Полученное число переводится в десятичную систему счисления.
Для какого значения \(N\) результат работы алгоритма равен \(204?\)
Решение:
Python
def R(N):
bn = f'{N-1:08b}'
bn = bn.replace('0', 'x').replace('1', '0').replace('x', '1')
return int(bn, 2)
for N in range(1, 256):
if R(N) == 204:
print(N)
break
Ответ: 52
Задание 5. Информатика. ЕГЭ. Поляков-2782
Автомат обрабатывает натуральное число \(N<256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N - 1.\)
Инвертируются все разряды исходного числа (\(0\) заменяется на \(1,\) \(1\) на \(0).\)
К полученному двоичному числу прибавляют единицу.
Чему равен результат работы алгоритма для \(N = 178?\)
Решение:
Python
def R(N):
bn = f'{N-1:08b}'
bn = bn.replace('0', 'x').replace('1', '0').replace('x', '1')
return int(bn, 2)
print(R(178))
Ответ: 78
Задание 5. Информатика. ЕГЭ. Поляков-2781
(А.М. Кабанов) Автомат обрабатывает натуральное число \(N<256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа (\(0\) заменяется на \(1,\) \(1\) на \(0).\)
К полученному двоичному числу прибавляют единицу.
Полученное число переводится в десятичную систему счисления.
Для какого числа \(N\) результат работы алгоритма равен \(221?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
bn = bn.replace('0', 'x').replace('1', '0').replace('x', '1')
return int(bn, 2) + 1
for N in range(1, 256):
if R(N) == 221:
print(N)
break
Ответ: 35
Задание 5. Информатика. ЕГЭ. Поляков-2780
(А.М. Кабанов) Автомат обрабатывает натуральное число \(N<256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа (\(0\) заменяется на \(1,\) \(1\) на \(0).\)
К полученному двоичному числу прибавляют единицу.
Полученное число переводится в десятичную систему счисления.
Для какого числа \(N\) результат работы алгоритма равен \(153?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
bn = bn.replace('0', 'x').replace('1', '0').replace('x', '1')
return int(bn, 2) + 1
for N in range(1, 256):
if R(N) == 153:
print(N)
break
Ответ: 103
Задание 5. Информатика. ЕГЭ. Поляков-2779
(А.М. Кабанов) Автомат обрабатывает натуральное число \(N<256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа (\(0\) заменяется на \(1,\) \(1\) на \(0).\)
К полученному двоичному числу прибавляют единицу.
Полученное число переводится в десятичную систему счисления.
Чему равен результат работы алгоритма для \(N = 120?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
bn = bn.replace('0', 'x').replace('1', '0').replace('x', '1')
return int(bn, 2) + 1
print(R(120))
Ответ: 136
Задание 5. Информатика. ЕГЭ. Поляков-2778
(А.М. Кабанов) Автомат обрабатывает натуральное число \(N<256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа (\(0\) заменяется на \(1,\) \(1\) на \(0).\)
К полученному двоичному числу прибавляют единицу.
Полученное число переводится в десятичную систему счисления.
Чему равен результат работы алгоритма для \(N = 95?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
bn = bn.replace('0', 'x').replace('1', '0').replace('x', '1')
return int(bn, 2) + 1
print(R(95))
Ответ: 161
Задание 5. Информатика. ЕГЭ. Поляков-2777
(А.М. Кабанов) Автомат обрабатывает натуральное число \(N<256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа (\(0\) заменяется на \(1,\) \(1\) на \(0).\)
К полученному двоичному числу прибавляют единицу.
Полученное число переводится в десятичную систему счисления.
Чему равен результат работы алгоритма для \(N = 80?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
bn = bn.replace('0', 'x').replace('1', '0').replace('x', '1')
return int(bn, 2) + 1
print(R(80))
Ответ: 176
Задание 5. Информатика. ЕГЭ. Поляков-2776
(А. Богданов) Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Все кроме первой значащие цифры инвертируются (\(0\) заменяется на \(1,\) а \(1\) на \(0).\)
Полученное число переводится в десятичную запись.
Новое число складывается с исходным, полученная сумма выводится на экран.
Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом.
Двоичная запись числа \(N:\) \(13 = 1101_2\)
Все кроме первой значащие цифры инвертируются: \(1010_2.\)
Десятичное значение полученного числа \(10.\)
На экран выводится число \(13 + 10 = 23.\)
Укажите такое наибольшее число \(N,\) для которого результат работы алгоритма не превышает \(123?\)
Решение:
Python
def R(N):
bn = f'{N:b}'[1:]
bn = '1' + bn.replace('0', 'x').replace('1', '0').replace('x','1')
return int(bn, 2) + N
#print(R(10))
print(max(N for N in range(1, 1000) if R(N) < 123))
Ответ: 63
Задание 5. Информатика. ЕГЭ. Поляков-2775
(А.М. Кабанов) Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Из записи удаляются две последние цифры.
Полученное число переводится в десятичную запись и выводится на экран.
Сколько разных значений будет показано на экране автомата при последовательном вводе всех натуральных чисел от \(20\) до \(600?\)
Решение:
Python
def R(N):
return int(f'{N:b}'[:-2], 2)
print(len(set(R(N) for N in range(20, 601))))
Ответ: 146
Задание 5. Информатика. ЕГЭ. Поляков-2774
(А.М. Кабанов) Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Из записи удаляются все нули.
Полученное число переводится в десятичную запись и выводится на экран.
Сколько разных значений будет показано на экране автомата при последовательном вводе всех натуральных чисел от \(10\) до \(2500?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
return int(bn.replace('0',''), 2)
print(len(set(R(N) for N in range(10, 2501))))
Ответ: 11
Задание 5. Информатика. ЕГЭ. Поляков-2773
(А.М. Кабанов) Автомат обрабатывает натуральное число \(N\) \((1 \leqslant N \leqslant 255)\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Удаляется последняя цифра двоичной записи.
Запись «переворачивается», то есть читается справа налево.
Полученное число переводится в десятичную запись и выводится на экран.
Каково наибольшее число, меньшее \(100,\) которое после обработки автоматом не изменится?
Решение:
Python
def R(N):
bn = f'{N:08b}'
return int(bn[:-1][::-1], 2)
for N in range(99, 0, -1):
if R(N) == N:
print(N)
break
Ответ: 90
Задание 5. Информатика. ЕГЭ. Поляков-2772
(А.М. Кабанов) Автомат обрабатывает натуральное число \(N\) \((1 \leqslant N \leqslant 255)\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Удаляются средние \(4\) цифры.
Полученное число переводится в десятичную запись и выводится на экран.
Какое наименьшее число, большее \(130,\) после обработки автоматом даёт результат \(10?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
return int(bn[:2] + bn[6:], 2)
for N in range(131, 256):
if R(N) == 10:
print(N)
break
Ответ: 134
Задание 5. Информатика. ЕГЭ. Поляков-2771
Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N\) без ведущих нулей.
Если в полученной записи единиц больше, чем нулей, то справа приписывается единица. Если нулей больше или нулей и единиц поровну, справа приписывается ноль.
Полученное число переводится в десятичную запись и выводится на экран.
Какое наименьшее число, превышающее \(40,\) может получиться в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '1' if bn.count('1') > bn.count('0') else '0'
return int(bn, 2)
print(min(R(N) for N in range(1, 200) if R(N) > 40))
Ответ: 43
Задание 5. Информатика. ЕГЭ. Поляков-2770
Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N\) без ведущих нулей.
Если в полученной записи единиц больше, чем нулей, то справа приписывается единица. Если нулей больше или нулей и единиц поровну, справа приписывается ноль.
Полученное число переводится в десятичную запись и выводится на экран.
Какое наименьшее число, превышающее \(36,\) может получиться в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '1' if bn.count('1') > bn.count('0') else '0'
return int(bn, 2)
print(min(R(N) for N in range(1, 200) if R(N) > 36))
Ответ: 39
Задание 5. Информатика. ЕГЭ. Поляков-1789
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа (\(0\) заменяется на \(1,\) \(1\) на \(0).\)
Полученное число переводится в десятичную систему счисления.
Из нового числа вычитается исходное, полученная разность выводится на экран.
Для какого значения \(N\) результат работы алгоритма равен \(113?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
bn = bn.replace('0', 'x'). replace('1', '0').replace('x', '1')
return int(bn, 2) - N
for N in range(1, 256):
if R(N) == 113:
print(N)
break
Ответ: 71
Задание 5. Информатика. ЕГЭ. Поляков-1788
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Затем справа дописываются два разряда: символы \(01,\) если число \(N\) чётное, и \(10,\) если нечётное.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) после обработки которого автомат получает число, большее \(138.\) В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
return (N << 2) + N % 2 + 1
for N in range(1, 200):
if R(N) > 138:
print(N)
break
Ответ: 35
Задание 5. Информатика. ЕГЭ. Поляков-1787
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Затем справа дописываются два разряда: символы \(01,\) если число \(N\) чётное, и \(10,\) если нечётное.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) после обработки которого автомат получает число, большее \(97.\) В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
return (N << 2) + N % 2 + 1
for N in range(1, 200):
if R(N) > 97:
print(N)
break
Ответ: 25
Задание 5. Информатика. ЕГЭ. Поляков-1786
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Затем справа дописываются два разряда: символы \(01,\) если число \(N\) чётное, и \(10,\) если нечётное.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) после обработки которого автомат получает число, большее \(73.\) В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
return (N << 2) + N % 2 + 1
for N in range(1, 200):
if R(N) > 73:
print(N)
break
Ответ: 19
Задание 5. Информатика. ЕГЭ. Поляков-1785
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Затем справа дописываются два разряда: символы \(01,\) если число \(N\) чётное, и \(10,\) если нечётное.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(R,\) большее \(130,\) которое может являться результатом работы этого алгоритма. В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
return (N << 2) + N % 2 + 1
print(min(R(N) for N in range(1, 200) if R(N) > 130))
Ответ: 134
Задание 5. Информатика. ЕГЭ. Поляков-1784
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Затем справа дописываются два разряда: символы \(01,\) если число \(N\) чётное, и \(10,\) если нечётное.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(R,\) большее \(81,\) которое может являться результатом работы этого алгоритма. В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
return (N << 2) + N % 2 + 1
print(min(R(N) for N in range(1, 200) if R(N) > 81))
Ответ: 86
Задание 5. Информатика. ЕГЭ. Поляков-1783
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Затем справа дописываются два разряда: символы \(01,\) если число \(N\) чётное, и \(10,\) если нечётное.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(R,\) большее \(62,\) которое может являться результатом работы этого алгоритма. В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
return (N << 2) + N % 2 + 1
print(min(R(N) for N in range(1, 200) if R(N) > 62))
Ответ: 65
Задание 5. Информатика. ЕГЭ. Поляков-1782
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается (дублируется) последняя цифра.
Затем справа дописывается \(0,\) если в двоичном коде числа \(N\) чётное число единиц, и \(1,\) если нечётное.
К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) после обработки которого автомат получает число, большее \(160.\) В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
ans = bn + bn[-1]
ans += str(bn.count('1') % 2)
ans += str(ans.count('1') % 2)
return int(ans, 2)
for N in range(1, 1000):
if R(N) > 160:
print(N)
break
Ответ: 21
Задание 5. Информатика. ЕГЭ. Поляков-1781
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается (дублируется) последняя цифра.
Затем справа дописывается \(0,\) если в двоичном коде числа \(N\) чётное число единиц, и \(1,\) если нечётное.
К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) после обработки которого автомат получает число, большее \(136.\) В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
ans = bn + bn[-1]
ans += str(bn.count('1') % 2)
ans += str(ans.count('1') % 2)
return int(ans, 2)
for N in range(1, 1000):
if R(N) > 136:
print(N)
break
Ответ: 17
Задание 5. Информатика. ЕГЭ. Поляков-1780
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается (дублируется) последняя цифра.
Затем справа дописывается \(0,\) если в двоичном коде числа \(N\) чётное число единиц, и \(1,\) если нечётное.
К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) после обработки которого автомат получает число, большее \(90.\) В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
ans = bn + bn[-1]
ans += str(bn.count('1') % 2)
ans += str(ans.count('1') % 2)
return int(ans, 2)
for N in range(1, 1000):
if R(N) > 90:
print(N)
break
Ответ: 11
Задание 5. Информатика. ЕГЭ. Поляков-1779
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается (дублируется) последняя цифра.
Затем справа дописывается \(0,\) если в двоичном коде числа \(N\) чётное число единиц, и \(1,\) если нечётное.
К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(R,\) большее \(105,\) которое могло получиться в результате работы автомата. В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
ans = bn + bn[-1]
ans += str(bn.count('1') % 2)
ans += str(ans.count('1') % 2)
return int(ans, 2)
print(min(R(N) for N in range(1, 1000) if R(N) > 105))
Ответ: 111
Задание 5. Информатика. ЕГЭ. Поляков-1778
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается (дублируется) последняя цифра.
Затем справа дописывается \(0,\) если в двоичном коде числа \(N\) чётное число единиц, и \(1,\) если нечётное.
К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(R,\) большее \(130,\) которое могло получиться в результате работы автомата. В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
ans = bn + bn[-1]
ans += str(bn.count('1') % 2)
ans += str(ans.count('1') % 2)
return int(ans, 2)
print(min(R(N) for N in range(1, 1000) if R(N) > 130))
Ответ: 141
Задание 5. Информатика. ЕГЭ. Поляков-1777
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается (дублируется) последняя цифра.
Затем справа дописывается \(0,\) если в двоичном коде числа \(N\) чётное число единиц, и \(1,\) если нечётное.
К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(R,\) большее \(80,\) которое могло получиться в результате работы автомата. В ответе это число запишите в десятичной системе.
Решение:
Python
def R(N):
bn = f'{N:b}'
ans = bn + bn[-1]
ans += str(bn.count('1') % 2)
ans += str(ans.count('1') % 2)
return int(ans, 2)
print(min(R(N) for N in range(1, 1000) if R(N) > 80))
Ответ: 95
Задание 5. Информатика. ЕГЭ. Поляков-1776
(Досрочный ЕГЭ-2018) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа ещё два разряда по следующему правилу: если \(N\) чётное, в конец числа (справа) дописываются два нуля, в противном случае справа дописываются две единицы. Например, двоичная запись \(1001\) числа \(9\) будет преобразована в \(100111.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью числа – результата работы данного алгоритма. Укажите минимальное число \(N,\) для которого результат работы алгоритма будет больше \(115.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
return (N << 2) + (N & 1) * 3
#print(bin(R(9)))
for N in range(1, 200):
if R(N) > 115:
print(N)
break
Ответ: 29
Задание 5. Информатика. ЕГЭ. Поляков-1775
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается (дублируется) последняя цифра.
Затем справа дописывается бит чётности: \(0,\) если в двоичном коде полученного числа чётное число единиц, и \(1,\) если нечётное.
К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) после обработки которого автомат получает число, большее \(114.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-1]
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
for N in range(1, 200):
if R(N) > 114:
print(N)
break
Ответ: 15
Задание 5. Информатика. ЕГЭ. Поляков-1774
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается (дублируется) последняя цифра.
Затем справа дописывается бит чётности: \(0,\) если в двоичном коде полученного числа чётное число единиц, и \(1,\) если нечётное.
К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) после обработки которого автомат получает число, большее \(97.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-1]
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
for N in range(1, 200):
if R(N) > 97:
print(N)
break
Ответ: 13
Задание 5. Информатика. ЕГЭ. Поляков-1773
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается (дублируется) последняя цифра.
Затем справа дописывается бит чётности: \(0,\) если в двоичном коде полученного числа чётное число единиц, и \(1,\) если нечётное.
К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) после обработки которого автомат получает число, большее \(130.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-1]
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
for N in range(1, 200):
if R(N) > 130:
print(N)
break
Ответ: 17
Задание 5. Информатика. ЕГЭ. Поляков-1772
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается (дублируется) последняя цифра.
Затем справа дописывается бит чётности: \(0,\) если в двоичном коде полученного числа чётное число единиц, и \(1,\) если нечётное.
К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое минимальное число \(R,\) большее \(66,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-1]
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(min(R(N) for N in range(1, 200) if R(N) > 66))
Ответ: 78
Задание 5. Информатика. ЕГЭ. Поляков-1771
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается (дублируется) последняя цифра.
Затем справа дописывается бит чётности: \(0,\) если в двоичном коде полученного числа чётное число единиц, и \(1,\) если нечётное.
К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое минимальное число \(R,\) большее \(144,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-1]
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(min(R(N) for N in range(1, 200) if R(N) > 144))
Ответ: 156
Задание 5. Информатика. ЕГЭ. Поляков-1770
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописывается (дублируется) последняя цифра.
Затем справа дописывается бит чётности: \(0,\) если в двоичном коде полученного числа чётное число единиц, и \(1,\) если нечётное.
К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое минимальное число \(R,\) большее \(114,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-1]
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(min(R(N) for N in range(1, 200) if R(N) > 114))
Ответ: 126
Задание 5. Информатика. ЕГЭ. Поляков-1769
Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
Полученное число переводится в десятичную систему счисления и выводится на экран.
Какое наименьшее число, превышающее \(1000,\) после обработки автоматом даёт результат \(29?\)
Решение:
Python
def R(N):
return int(f'{N:b}'[::-1], 2)
for N in range(1001, 10000):
if R(N) == 29:
print(N)
break
Ответ: 1472
Задание 5. Информатика. ЕГЭ. Поляков-1768
Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
Полученное число переводится в десятичную систему счисления и выводится на экран.
Какое наименьшее число, превышающее \(500,\) после обработки автоматом даёт результат \(19?\)
Решение:
Python
def R(N):
return int(f'{N:b}'[::-1], 2)
for N in range(501, 10000):
if R(N) == 19:
print(N)
break
Ответ: 800
Задание 5. Информатика. ЕГЭ. Поляков-1767
Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
Полученное число переводится в десятичную систему счисления и выводится на экран.
Какое наименьшее число, превышающее \(500,\) после обработки автоматом даёт результат \(15?\)
Решение:
Python
def R(N):
return int(f'{N:b}'[::-1], 2)
for N in range(501, 10000):
if R(N) == 15:
print(N)
break
Ответ: 960
Задание 5. Информатика. ЕГЭ. Поляков-1766
Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
Полученное число переводится в десятичную систему счисления и выводится на экран.
Какое наименьшее число, превышающее \(100,\) после обработки автоматом даёт результат \(9?\)
Решение:
Python
def R(N):
return int(f'{N:b}'[::-1], 2)
for N in range(101, 10000):
if R(N) == 9:
print(N)
break
Ответ: 144
Задание 5. Информатика. ЕГЭ. Поляков-1765
Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
Полученное число переводится в десятичную систему счисления и выводится на экран.
Какое наименьшее число, превышающее \(100,\) после обработки автоматом даёт результат \(7?\)
Решение:
Python
def R(N):
return int(f'{N:b}'[::-1], 2)
for N in range(101, 10000):
if R(N) == 7:
print(N)
break
Ответ: 112
Задание 5. Информатика. ЕГЭ. Поляков-1764
Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
Полученное число переводится в десятичную систему счисления и выводится на экран.
Какое наибольшее число, не превышающее \(1000,\) после обработки автоматом даёт результат \(23?\)
Решение:
Python
def R(N):
return int(f'{N:b}'[::-1], 2)
for N in range(1000, 0, -1):
if R(N) == 23:
print(N)
break
Ответ: 928
Задание 5. Информатика. ЕГЭ. Поляков-1763
Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
Полученное число переводится в десятичную систему счисления и выводится на экран.
Какое наибольшее число, не превышающее \(500,\) после обработки автоматом даёт результат \(13?\)
Решение:
Python
def R(N):
return int(f'{N:b}'[::-1], 2)
for N in range(500, 0, -1):
if R(N) == 13:
print(N)
break
Ответ: 352
Задание 5. Информатика. ЕГЭ. Поляков-1762
Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
Полученное число переводится в десятичную систему счисления и выводится на экран.
Какое наибольшее число, не превышающее \(500,\) после обработки автоматом даёт результат \(11?\)
Решение:
Python
def R(N):
return int(f'{N:b}'[::-1], 2)
for N in range(500, 0, -1):
if R(N) == 11:
print(N)
break
Ответ: 416
Задание 5. Информатика. ЕГЭ. Поляков-1761
Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
Полученное число переводится в десятичную систему счисления и выводится на экран.
Какое наибольшее число, не превышающее \(100,\) после обработки автоматом даёт результат \(9?\)
Решение:
Python
def R(N):
return int(f'{N:b}'[::-1], 2)
for N in range(100, 0, -1):
if R(N) == 9:
print(N)
break
Ответ: 72
Задание 5. Информатика. ЕГЭ. Поляков-1760
Автомат обрабатывает натуральное число \(N\) по следующему алгоритму:
Строится двоичная запись числа \(N.\)
Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
Полученное число переводится в десятичную систему счисления и выводится на экран.
Какое наибольшее число, не превышающее \(100,\) после обработки автоматом даёт результат \(7?\)
Решение:
Python
def R(N):
return int(f'{N:b}'[::-1], 2)
for N in range(100, 0, -1):
if R(N) == 7:
print(N)
break
Ответ: 56
Задание 5. Информатика. ЕГЭ. Поляков-1759
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Из нового числа вычитается исходное, полученная разность выводится на экран.
Для какого значения \(N\) результат работы алгоритма равен \(-21\)?
Решение:
Python
def R(N):
bn = f'{N:08b}'
s = bn.replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s, 2) - N
for N in range(255, -1, -1):
if R(N) == -21:
print(N)
break
Ответ: 138
Задание 5. Информатика. ЕГЭ. Поляков-1758
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Из нового числа вычитается исходное, полученная разность выводится на экран.
Для какого значения \(N\) результат работы алгоритма равен \(45\)?
Решение:
Python
def R(N):
bn = f'{N:08b}'
s = bn.replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s, 2) - N
for N in range(255, -1, -1):
if R(N) == 45:
print(N)
break
Ответ: 105
Задание 5. Информатика. ЕГЭ. Поляков-1757
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Из нового числа вычитается исходное, полученная разность выводится на экран.
Для какого значения \(N\) результат работы алгоритма равен \(99\)?
Решение:
Python
def R(N):
bn = f'{N:08b}'
s = bn.replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s, 2) - N
for N in range(255, -1, -1):
if R(N) == 99:
print(N)
break
Ответ: 78
Задание 5. Информатика. ЕГЭ. Поляков-1756
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа, кроме последней единицы и стоящих за ней нулей (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Для какого значения \(N\) результат работы алгоритма равен \(6?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
pos = bn.rfind('1')
s = bn[:pos].replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s + bn[pos:], 2)
for N in range(255, -1, -1):
if R(N) == 6:
print(N)
break
Ответ: 250
Задание 5. Информатика. ЕГЭ. Поляков-1755
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа, кроме последней единицы и стоящих за ней нулей (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Для какого значения \(N\) результат работы алгоритма равен \(11?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
pos = bn.rfind('1')
s = bn[:pos].replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s + bn[pos:], 2)
for N in range(255, -1, -1):
if R(N) == 11:
print(N)
break
Ответ: 245
Задание 5. Информатика. ЕГЭ. Поляков-1754
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа, кроме последней единицы и стоящих за ней нулей (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Для какого значения \(N\) результат работы алгоритма равен \(221?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
pos = bn.rfind('1')
s = bn[:pos].replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s + bn[pos:], 2)
for N in range(255, -1, -1):
if R(N) == 221:
print(N)
break
Ответ: 35
Задание 5. Информатика. ЕГЭ. Поляков-1753
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа, кроме последней единицы и стоящих за ней нулей (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Для какого значения \(N\) результат работы алгоритма равен \(178?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
pos = bn.rfind('1')
s = bn[:pos].replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s + bn[pos:], 2)
for N in range(255, -1, -1):
if R(N) == 178:
print(N)
break
Ответ: 78
Задание 5. Информатика. ЕГЭ. Поляков-1752
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа, кроме последней единицы и стоящих за ней нулей (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Для какого значения \(N\) результат работы алгоритма равен \(18?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
pos = bn.rfind('1')
s = bn[:pos].replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s + bn[pos:], 2)
for N in range(255, -1, -1):
if R(N) == 18:
print(N)
break
Ответ: 238
Задание 5. Информатика. ЕГЭ. Поляков-1751
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа, кроме последней единицы и стоящих за ней нулей (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Для какого значения \(N\) результат работы алгоритма равен \(143?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
pos = bn.rfind('1')
s = bn[:pos].replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s + bn[pos:], 2)
for N in range(255, -1, -1):
if R(N) == 143:
print(N)
break
Ответ: 113
Задание 5. Информатика. ЕГЭ. Поляков-1750
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа, кроме последней единицы и стоящих за ней нулей (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Для какого значения \(N\) результат работы алгоритма равен \(211?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
pos = bn.rfind('1')
s = bn[:pos].replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s + bn[pos:], 2)
for N in range(255, -1, -1):
if R(N) == 211:
print(N)
break
Ответ: 45
Задание 5. Информатика. ЕГЭ. Поляков-1749
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа, кроме последней единицы и стоящих за ней нулей (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Для какого значения \(N\) результат работы алгоритма равен \(193?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
pos = bn.rfind('1')
s = bn[:pos].replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s + bn[pos:], 2)
for N in range(255, -1, -1):
if R(N) == 193:
print(N)
break
Ответ: 63
Задание 5. Информатика. ЕГЭ. Поляков-1748
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа, кроме последней единицы и стоящих за ней нулей (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Для какого значения \(N\) результат работы алгоритма равен \(171?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
pos = bn.rfind('1')
s = bn[:pos].replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s + bn[pos:], 2)
for N in range(255, -1, -1):
if R(N) == 171:
print(N)
break
Ответ: 85
Задание 5. Информатика. ЕГЭ. Поляков-1747
Автомат обрабатывает натуральное число \(N < 256\) по следующему алгоритму:
Строится восьмибитная двоичная запись числа \(N.\)
Инвертируются все разряды исходного числа, кроме последней единицы и стоящих за ней нулей (\(0\) заменяется на \(1\), \(1\) на \(0\)).
Полученное число переводится в десятичную систему счисления.
Для какого значения \(N\) результат работы алгоритма равен \(98?\)
Решение:
Python
def R(N):
bn = f'{N:08b}'
pos = bn.rfind('1')
s = bn[:pos].replace('0', 'x').replace('1', '0').replace('x', '1')
return int(s + bn[pos:], 2)
for N in range(255, -1, -1):
if R(N) == 98:
print(N)
break
Ответ: 158
Задание 5. Информатика. ЕГЭ. Поляков-1746
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Если в полученной записи единиц больше, чем нулей, то справа приписывается единица. Если нулей больше или нулей и единиц поровну, справа приписывается ноль.
Полученная таким образом запись (в ней на один разряд больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наибольшее число, меньшее \(43,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '1' if bn.count('1') > bn.count('0') else '0'
return int(bn, 2)
print(max(R(N) for N in range(1, 100) if R(N) < 43))
Ответ: 40
Задание 5. Информатика. ЕГЭ. Поляков-1745
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Если в полученной записи единиц больше, чем нулей, то справа приписывается единица. Если нулей больше или нулей и единиц поровну, справа приписывается ноль.
Полученная таким образом запись (в ней на один разряд больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наибольшее число, меньшее \(90,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '1' if bn.count('1') > bn.count('0') else '0'
return int(bn, 2)
print(max(R(N) for N in range(1, 100) if R(N) < 90))
Ответ: 88
Задание 5. Информатика. ЕГЭ. Поляков-1743
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
Если в полученной записи единиц больше, чем нулей, то справа приписывается единица. Если нулей больше или нулей и единиц поровну, справа приписывается ноль.
Полученное число переводится в десятичную запись и выводится на экран.
Полученная таким образом запись (в ней на один разряд больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наибольшее число, меньшее \(100,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '1' if bn.count('1') > bn.count('0') else '0'
return int(bn, 2)
print(max(R(N) for N in range(1, 100) if R(N) < 100))
Ответ: 98
Задание 5. Информатика. ЕГЭ. Поляков-1742
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наибольшее число, меньшее \(50,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(max(R(N) for N in range(1, 200) if R(N) < 50))
Ответ: 48
Задание 5. Информатика. ЕГЭ. Поляков-1741
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наибольшее число, меньшее \(70,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(max(R(N) for N in range(1, 200) if R(N) < 70))
Ответ: 68
Задание 5. Информатика. ЕГЭ. Поляков-1740
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наибольшее число, меньшее \(86,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(max(R(N) for N in range(1, 200) if R(N) < 86))
Ответ: 80
Задание 5. Информатика. ЕГЭ. Поляков-1739
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наибольшее число, меньшее \(114,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(max(R(N) for N in range(1, 200) if R(N) < 114))
Ответ: 108
Задание 5. Информатика. ЕГЭ. Поляков-1738
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наибольшее число, меньшее \(130,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(max(R(N) for N in range(1, 200) if R(N) < 130))
Ответ: 126
Задание 5. Информатика. ЕГЭ. Поляков-1737
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наименьшее число, большее \(115,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(min(R(N) for N in range(1, 1000) if R(N) > 115))
Ответ: 116
Задание 5. Информатика. ЕГЭ. Поляков-1736
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наименьшее число, большее \(108,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(min(R(N) for N in range(1, 1000) if R(N) > 108))
Ответ: 114
Задание 5. Информатика. ЕГЭ. Поляков-1735
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наименьшее число, большее \(100,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(min(R(N) for N in range(1, 1000) if R(N) > 100))
Ответ: 102
Задание 5. Информатика. ЕГЭ. Поляков-1734
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наименьшее число, большее \(90,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(min(R(N) for N in range(1, 1000) if R(N) > 90))
Ответ: 92
Задание 5. Информатика. ЕГЭ. Поляков-1733
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N.\)
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на \(2.\)
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наименьшее число, большее \(80,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += str(bn.count('1') % 2)
bn += str(bn.count('1') % 2)
return int(bn, 2)
print(min(R(N) for N in range(1, 1000) if R(N) > 80))
Ответ: 86
Задание 5. Информатика. ЕГЭ. Поляков-1732
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Сколько различных чисел, меньших \(50\), могут появиться на экране в результате работы автомата?
Решение:
C++
#include<iostream>
#include<set>
using namespace std;
int sum_digits(int N) {
int sum = 0;
for(; N; sum += N & 1, N >>=1) ;
return sum;
}
int R(int N) {
int q = 2;
while(q--)
N = (N << 1) + sum_digits(N) % 2;
return N;
}
int32_t main() {
set<int> S;
for(int N = 1; N < 50; N++) {
int res = R(N);
if (res < 50)
S.insert(res);
}
cout << S.size() << '\n';
}
Ответ: 12
Задание 5. Информатика. ЕГЭ. Поляков-1731
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Сколько различных чисел, меньших \(80\), могут появиться на экране в результате работы автомата?
Решение:
C++
#include<iostream>
#include<set>
using namespace std;
int sum_digits(int N) {
int sum = 0;
for(; N; sum += N & 1, N >>=1) ;
return sum;
}
int R(int N) {
int q = 2;
while(q--)
N = (N << 1) + sum_digits(N) % 2;
return N;
}
int32_t main() {
set<int> S;
for(int N = 1; N < 100; N++) {
int res = R(N);
if (res < 80)
S.insert(res);
}
cout << S.size() << '\n';
}
Ответ: 19
Задание 5. Информатика. ЕГЭ. Поляков-1730
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Сколько различных чисел, меньших \(100\), могут появиться на экране в результате работы автомата?
Решение:
C++
#include<iostream>
#include<set>
using namespace std;
int sum_digits(int N) {
int sum = 0;
for(; N; sum += N & 1, N >>=1) ;
return sum;
}
int R(int N) {
int q = 2;
while(q--)
N = (N << 1) + sum_digits(N) % 2;
return N;
}
int32_t main() {
set<int> S;
for(int N = 1; N < 100; N++) {
int res = R(N);
if (res < 100)
S.insert(res);
}
cout << S.size() << '\n';
}
Ответ: 24
Задание 5. Информатика. ЕГЭ. Поляков-1729
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Сколько различных чисел, принадлежащих отрезку \([20; \, 50]\), могут появиться на экране в результате работы автомата?
Решение:
C++
#include<iostream>
#include<set>
using namespace std;
int sum_digits(int N) {
int sum = 0;
for(; N; sum += N & 1, N >>=1) ;
return sum;
}
int R(int N) {
int q = 2;
while(q--)
N = (N << 1) + sum_digits(N) % 2;
return N;
}
int32_t main() {
set<int> S;
for(int N = 2; N < 100; N++) {
int res = R(N);
if (res >= 20 && res <= 50)
S.insert(res);
}
cout << S.size() << '\n';
}
Ответ: 9
Задание 5. Информатика. ЕГЭ. Поляков-1728
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Сколько различных чисел, принадлежащих отрезку \([90; \, 160]\), могут появиться на экране в результате работы автомата?
Решение:
C++
#include<iostream>
#include<set>
using namespace std;
int sum_digits(int N) {
int sum = 0;
for(; N; sum += N & 1, N >>=1) ;
return sum;
}
int R(int N) {
int q = 2;
while(q--)
N = (N << 1) + sum_digits(N) % 2;
return N;
}
int32_t main() {
set<int> S;
for(int N = 2; N < 200; N++) {
int res = R(N);
if (res >= 90 && res <= 160)
S.insert(res);
}
cout << S.size() << '\n';
}
Ответ: 19
Задание 5. Информатика. ЕГЭ. Поляков-1727
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Сколько различных чисел, принадлежащих отрезку \([210; \, 260]\), могут появиться на экране в результате работы автомата?
Решение:
C++
#include<iostream>
#include<set>
using namespace std;
int sum_digits(int N) {
int sum = 0;
for(; N; sum += N & 1, N >>=1) ;
return sum;
}
int R(int N) {
int q = 2;
while(q--)
N = (N << 1) + sum_digits(N) % 2;
return N;
}
int32_t main() {
set<int> S;
for(int N = 2; N < 300; N++) {
int res = R(N);
if (res >= 210 && res <= 260)
S.insert(res);
}
cout << S.size() << '\n';
}
Ответ: 14
Задание 5. Информатика. ЕГЭ. Поляков-1726
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно наименьшее возможное трёхзначное число \(N\), в результате обработки которого на экране автомата появится число \(60\)?
Решение:
C++
#include<iostream>
#include<algorithm>
using namespace std;
int32_t main() {
for(int N = 100; N < 1000; N++) {
int min_n, max_n;
int nums[3] = {N % 10, N / 10 % 10, N / 100};
sort(nums, nums+3);
max_n = nums[2] * 10 + nums[1];
if(nums[0])
min_n = nums[0] * 10 + nums[1];
else if (nums[1])
min_n = nums[1] * 10;
else
min_n = nums[2] * 10;
if (max_n - min_n == 60) {
cout << N << '\n';
break;
}
}
}
Ответ: 117
Задание 5. Информатика. ЕГЭ. Поляков-1725
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно наибольшее возможное трёхзначное число \(N\), в результате обработки которого на экране автомата появится число \(50\)?
Решение:
C++
#include<iostream>
#include<algorithm>
using namespace std;
int32_t main() {
for(int N = 999; N > 99; N--) {
int min_n, max_n;
int nums[3] = {N % 10, N / 10 % 10, N / 100};
sort(nums, nums+3);
max_n = nums[2] * 10 + nums[1];
if(nums[0])
min_n = nums[0] * 10 + nums[1];
else if (nums[1])
min_n = nums[1] * 10;
else
min_n = nums[2] * 10;
if (max_n - min_n == 50) {
cout << N << '\n';
break;
}
}
}
Ответ: 994
Задание 5. Информатика. ЕГЭ. Поляков-1724
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно наименьшее возможное трёхзначное число \(N\), в результате обработки которого на экране автомата появится число \(63\)?
Решение:
C++
#include<iostream>
#include<algorithm>
using namespace std;
int32_t main() {
for(int N = 100; N < 1000; N++) {
int min_n, max_n;
int nums[3] = {N % 10, N / 10 % 10, N / 100};
sort(nums, nums+3);
max_n = nums[2] * 10 + nums[1];
if(nums[0])
min_n = nums[0] * 10 + nums[1];
else if (nums[1])
min_n = nums[1] * 10;
else
min_n = nums[2] * 10;
if (max_n - min_n == 63) {
cout << N << '\n';
break;
}
}
}
Ответ: 309
Задание 5. Информатика. ЕГЭ. Поляков-1723
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно наибольшее возможное трёхзначное число \(N\), в результате обработки которого на экране автомата появится число \(14\)?
Решение:
C++
#include<iostream>
#include<algorithm>
using namespace std;
int32_t main() {
for(int N = 999; N > 99; N--) {
int min_n, max_n;
int nums[3] = {N % 10, N / 10 % 10, N / 100};
sort(nums, nums+3);
max_n = nums[2] * 10 + nums[1];
if(nums[0])
min_n = nums[0] * 10 + nums[1];
else if (nums[1])
min_n = nums[1] * 10;
else
min_n = nums[2] * 10;
if (max_n - min_n == 14) {
cout << N << '\n';
break;
}
}
}
Ответ: 540
Задание 5. Информатика. ЕГЭ. Поляков-1722
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно количество трёхзначных чисел \(N\), в результате обработки которых на экране автомата появится число \(35\)?
Решение:
C++
#include<iostream>
#include<algorithm>
using namespace std;
int32_t main() {
int q = 0;
for(int N = 100; N < 1000; N++) {
int min_n, max_n;
int nums[3] = {N % 10, N / 10 % 10, N / 100};
sort(nums, nums+3);
max_n = nums[2] * 10 + nums[1];
if(nums[0])
min_n = nums[0] * 10 + nums[1];
else if (nums[1])
min_n = nums[1] * 10;
else
min_n = nums[2] * 10;
q += max_n - min_n == 35 ? 1 : 0;
}
cout << q << '\n';
}
Ответ: 4
Задание 5. Информатика. ЕГЭ. Поляков-1721
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно количество трёхзначных чисел \(N\), в результате обработки которых на экране автомата появится число \(58\)?
Решение:
C++
#include<iostream>
#include<algorithm>
using namespace std;
int32_t main() {
int q = 0;
for(int N = 100; N < 1000; N++) {
int min_n, max_n;
int nums[3] = {N % 10, N / 10 % 10, N / 100};
sort(nums, nums+3);
max_n = nums[2] * 10 + nums[1];
if(nums[0])
min_n = nums[0] * 10 + nums[1];
else if (nums[1])
min_n = nums[1] * 10;
else
min_n = nums[2] * 10;
q += max_n - min_n == 58 ? 1 : 0;
}
cout << q << '\n';
}
Ответ: 0
Задание 5. Информатика. ЕГЭ. Поляков-1720
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно количество чисел \(N\) на отрезке \([100; \, 200]\), в результате обработки которых на экране автомата появится число \(30\)?
Решение:
C++
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int32_t main()
{
int q = 0;
for(int j = 0; j < 10; j++)
for(int k = 0; k < 10; k++) {
int min_n, max_n;
int N[3] = {1, j, k};
sort(N, N + 3);
max_n = N[2] * 10 + N[1];
if (N[0])
min_n = N[0] * 10 + N[1];
else if (N[1])
min_n = N[1] * 10;
else
min_n = N[2] * 10;
q += max_n - min_n == 30 ? 1 : 0;
}
cout << q << '\n';
}
Ответ: 7
Задание 5. Информатика. ЕГЭ. Поляков-1719
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно количество чисел \(N\) на отрезке \([300; \, 400]\), в результате обработки которых на экране автомата появится число \(20\)?
Решение:
C++
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int32_t main()
{
int q = 0;
for(int j = 0; j < 10; j++)
for(int k = 0; k < 10; k++) {
int min_n, max_n;
int N[3] = {3, j, k};
sort(N, N + 3);
max_n = N[2] * 10 + N[1];
if (N[0])
min_n = N[0] * 10 + N[1];
else if (N[1])
min_n = N[1] * 10;
else
min_n = N[2] * 10;
q += max_n - min_n == 20 ? 1 : 0;
}
cout << q << '\n';
}
Ответ: 12
Задание 5. Информатика. ЕГЭ. Поляков-1718
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно количество чисел \(N\) на отрезке \([500; \, 600]\), в результате обработки которых на экране автомата появится число \(10\)?
Решение:
C++
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int32_t main()
{
int q = 0;
for(int j = 0; j < 10; j++)
for(int k = 0; k < 10; k++) {
int min_n, max_n;
int N[3] = {5, j, k};
sort(N, N + 3);
max_n = N[2] * 10 + N[1];
if (N[0])
min_n = N[0] * 10 + N[1];
else if (N[1])
min_n = N[1] * 10;
else
min_n = N[2] * 10;
q += max_n - min_n == 10 ? 1 : 0;
}
cout << q << '\n';
}
Ответ: 6
Задание 5. Информатика. ЕГЭ. Поляков-1717
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно количество чисел \(N\) на отрезке \([700; \, 800]\), в результате обработки которых на экране автомата появится число \(80\)?
Решение:
C++
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int32_t main()
{
int q = 0;
for(int j = 0; j < 10; j++)
for(int k = 0; k < 10; k++) {
int min_n, max_n;
vector<int> N;
N.push_back(7);
N.push_back(j);
N.push_back(k);
sort(begin(N), end(N));
max_n = N[2] * 10 + N[1];
if (N[0])
min_n = N[0] * 10 + N[1];
else if (N[1])
min_n = N[1] * 10;
else
min_n = N[2] * 10;
q += max_n - min_n == 80 ? 1 : 0;
}
cout << q << '\n';
}
Ответ: 2
Задание 5. Информатика. ЕГЭ. Поляков-1716
p>Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно количество чисел \(N\) на отрезке \([900; \, 999]\), в результате обработки которых на экране автомата появится число \(70\)?
Решение:
C++
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int32_t main()
{
int q = 0;
for(int j = 0; j < 10; j++)
for(int k = 0; k < 10; k++) {
int min_n, max_n;
vector<int> N;
N.push_back(9);
N.push_back(j);
N.push_back(k);
sort(begin(N), end(N));
max_n = N[2] * 10 + N[1];
if (N[0])
min_n = N[0] * 10 + N[1];
else if (N[1])
min_n = N[1] * 10;
else
min_n = N[2] * 10;
q += max_n - min_n == 70 ? 1 : 0;
}
cout << q << '\n';
}
Ответ: 15
Задание 5. Информатика. ЕГЭ. Поляков-1715
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Из цифр, образующих десятичную запись \(N\), строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля).
На экран выводится разность полученных двузначных чисел.
Пример. Дано число \(N = 351\). Наибольшее двузначное число из заданных цифр — \(53\), наименьшее — \(13\). На экран выводится разность \(53 - 13 = 40\).
Чему равно количество чисел \(N\) на отрезке \([800; \, 900]\), в результате обработки которых на экране автомата появится число \(30\)?
Решение:
C++
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int32_t main()
{
int q = 0;
for(int j = 0; j < 10; j++)
for(int k = 0; k < 10; k++) {
int min_n, max_n;
vector<int> N;
N.push_back(8);
N.push_back(j);
N.push_back(k);
sort(begin(N), end(N));
max_n = N[2] * 10 + N[1];
if (N[0])
min_n = N[0] * 10 + N[1];
else if (N[1])
min_n = N[1] * 10;
else
min_n = N[2] * 10;
q += max_n - min_n == 30 ? 1 : 0;
}
cout << q << '\n';
}
Ответ: 9
Задание 5. Информатика. ЕГЭ. Поляков-1714
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Укажите такое наименьшее число \(N\), для которого результат работы данного алгоритма больше числа \(154\). В ответе это число запишите в десятичной системе счисления.
Решение:
C++
#include<iostream>
using namespace std;
int sum_digit(int N) {
int sum =0;
for(; N; sum += N & 1, N >>= 1) ;
return sum;
}
int R(int N) {
int q = 2;
while (q--)
N = (N << 1) + sum_digit(N) % 2;
return N;
}
int32_t main() {
for(int N = 1; N < 1000; N++)
if (R(N) > 154) {
cout << N << endl;
break;
}
}
Ответ: 39
Задание 5. Информатика. ЕГЭ. Поляков-1713
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Укажите такое наименьшее число \(N\), для которого результат работы данного алгоритма больше числа \(170\). В ответе это число запишите в десятичной системе счисления.
Решение:
C++
#include<iostream>
using namespace std;
int sum_digit(int N) {
int sum =0;
for(; N; sum += N & 1, N >>= 1) ;
return sum;
}
int R(int N) {
int q = 2;
while (q--)
N = (N << 1) + sum_digit(N) % 2;
return N;
}
int32_t main() {
for(int N = 1; N < 1000; N++)
if (R(N) > 170) {
cout << N << endl;
break;
}
}
Ответ: 43
Задание 5. Информатика. ЕГЭ. Поляков-1712
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Укажите такое наименьшее число \(N\), для которого результат работы данного алгоритма больше числа \(77\). В ответе это число запишите в десятичной системе счисления.
Решение:
C++
#include<iostream>
using namespace std;
int sum_digit(int N) {
int sum =0;
for(; N; sum += N & 1, N >>= 1) ;
return sum;
}
int R(int N) {
int q = 2;
while (q--)
N = (N << 1) + sum_digit(N) % 2;
return N;
}
int32_t main() {
for(int N = 1; N < 1000; N++)
if (R(N) > 77) {
cout << N << endl;
break;
}
}
Ответ: 19
Задание 5. Информатика. ЕГЭ. Поляков-149
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Укажите такое наименьшее число \(R\), которое превышает \(118\) и может являться результатом работы алгоритма. В ответе это число запишите в десятичной системе счисления.
Решение:
С++
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int sum_digits(int N) {
int s = 0;
for(; N; s += N & 1, N>>=1) ;
return s;
}
int R(int N) {
for(int i = 0; i < 2; i++)
N = (N<<1) + sum_digits(N) % 2;
return N;
}
int32_t main() {
vector<int> ans;
for(int N = 1; N < 1000; N++)
{
int tmp = R(N);
if(tmp > 118)
ans.push_back(tmp);
}
cout << *min_element(ans.begin(), ans.end()) << '\n';
}
Ответ: 120
Задание 5. Информатика. ЕГЭ. Поляков-148
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Укажите такое наименьшее число \(R\), которое превышает \(130\) и может являться результатом работы алгоритма. В ответе это число запишите в десятичной системе счисления.
Решение:
С++
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int sum_digits(int N) {
int s = 0;
for(; N; s += N & 1, N>>=1) ;
return s;
}
int R(int N) {
for(int i = 0; i < 2; i++)
N = (N<<1) + sum_digits(N) % 2;
return N;
}
int32_t main() {
vector<int> ans;
for(int N = 1; N < 1000; N++)
{
int tmp = R(N);
if(tmp > 130)
ans.push_back(tmp);
}
cout << *min_element(ans.begin(), ans.end()) << '\n';
}
Ответ: 132
Задание 5. Информатика. ЕГЭ. Поляков-147
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Укажите такое наименьшее число \(R\), которое превышает \(150\) и может являться результатом работы алгоритма. В ответе это число запишите в десятичной системе счисления.
Решение:
С++
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int sum_digits(int N) {
int s = 0;
for(; N; s += N & 1, N>>=1) ;
return s;
}
int R(int N) {
for(int i = 0; i < 2; i++)
N = (N<<1) + sum_digits(N) % 2;
return N;
}
int32_t main() {
vector<int> ans;
for(int N = 1; N < 1000; N++)
{
int tmp = R(N);
if(tmp > 150)
ans.push_back(tmp);
}
cout << *min_element(ans.begin(), ans.end()) << '\n';
}
Ответ: 154
Задание 5. Информатика. ЕГЭ. Поляков-146
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Укажите такое наименьшее число \(R\), которое превышает \(180\) и может являться результатом работы алгоритма. В ответе это число запишите в десятичной системе счисления.
Решение:
C++
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int sum_digits(int N) {
int s = 0;
for(; N; s += N & 1, N>>=1) ;
return s;
}
int R(int N) {
for(int i = 0; i < 2; i++)
N = (N<<1) + sum_digits(N) % 2;
return N;
}
int32_t main() {
vector<int> ans;
for(int N = 1; N < 1000; N++)
{
int tmp = R(N);
if(tmp > 180)
ans.push_back(tmp);
}
cout << *min_element(ans.begin(), ans.end()) << '\n';
}
Ответ: 184
Задание 5. Информатика. ЕГЭ. Поляков-145
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Перемножаются первая и вторая, а также вторая и третья цифры.
Полученные два числа записываются друг за другом в порядке неубывания без разделителей.
Пример. Исходное число: \(631\). Произведение: \(6\cdot 3 = 18\); \(3 \cdot 1 = 3\). Результат: \(318\). Укажите наибольшее число, при обработке которого автомат выдаёт результат \(621\).
Решение:
C++
#include<iostream>
#include<string>
using namespace std;
int32_t main() {
for (int N = 999; N > 99; N--) {
string s, ans;
int p0, p1;
s = to_string(N);
p0 = (s[0] - '0') * (s[1] - '0');
p1 = (s[1] - '0') * (s[2] - '0');
ans = (p0 < p1) ? to_string(p0) + to_string(p1) : to_string(p1) + to_string(p0);
if (stoi(ans) == 621) {
cout << N << '\n';
break;
}
}
}
Ответ: 732
Задание 5. Информатика. ЕГЭ. Поляков-144
Автомат получает на вход пятизначное число. По этому числу строится новое число по следующим правилам.
Складываются отдельно первая, третья и пятая цифры, а также вторая и четвёртая цифры.
Полученные два числа записываются друг за другом в порядке неубывания без разделителей.
Пример. Исходное число: \(63~179\). Суммы: \(6 + 1 + 9 = 16\); \(3 + 7 = 10\). Результат: \(1016\). Укажите наименьшее число, при обработке которого автомат выдаёт результат \(621\).
Решение:
C++
#include<iostream>
#include<string>
using namespace std;
int32_t main() {
unsigned int N;
string s;
for (N = 10000; N < 100000; N++) {
unsigned int s0, s1;
string ans;
s = to_string(N);
s0 = s[0] - '0' + s[2] - '0' + s[4] - '0';
s1 = s[1] - '0' + s[3] - '0';
ans = (s0 <= s1) ? to_string(s0) + to_string(s1) : to_string(s1) + to_string(s0);
if (stoi(ans) == 621) {
cout << N << '\n';
break;
}
}
}
Ответ: 30969
Задание 5. Информатика. ЕГЭ. Поляков-143
Автомат получает на вход пятизначное число. По этому числу строится новое число по следующим правилам.
Складываются отдельно первая, третья и пятая цифры, а также вторая и четвёртая цифры.
Полученные два числа записываются друг за другом в порядке неубывания без разделителей.
Пример. Исходное число: \(63~179\). Суммы: \(6 + 1 + 9 = 16\); \(3 + 7 = 10\). Результат: \(1016\). Укажите наименьшее число, при обработке которого автомат выдаёт результат \(723\).
Решение:
C++
#include<iostream>
#include<string>
using namespace std;
int32_t main() {
unsigned int N;
string s;
for (N = 10000; N < 100000; N++) {
unsigned int s0, s1;
string ans;
s = to_string(N);
s0 = s[0] + s[2] + s[4] - 3 *'0';
s1 = s[1] + s[3] - 2 * '0';
ans = (s0 <= s1) ? to_string(s0) + to_string(s1) : to_string(s1) + to_string(s0);
if (stoi(ans) == 723) {
cout << N << '\n';
break;
}
}
}
Ответ: 50979
Задание 5. Информатика. ЕГЭ. Поляков-142
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются ещё два разряда по следующему правилу:
a) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Укажите такое наименьшее число \(R\), которое превышает \(43\) и может являться результатом работы алгоритма. В ответе это число запишите в десятичной системе счисления.
Решение:
C++
#include<iostream>
using namespace std;
unsigned int sum_digits(unsigned int N) {
unsigned int sum = 0;
while (N)
{
sum += N & 1;
N >>= 1;
}
return sum;
}
unsigned int R(unsigned int N) {
for (int i = 0; i < 2; i++)
N = (N << 1) + sum_digits(N) % 2;
return N;
}
int32_t main() {
unsigned int Rmin = 10000;
for (unsigned int N = 1; N < 1000; N++) {
unsigned int ans;
ans = R(N);
if (ans > 43 && ans < Rmin) Rmin = ans;
}
cout << Rmin << '\n';
}
Ответ: 46
Задание 5. Информатика. ЕГЭ. Поляков-141
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются ещё два разряда по следующему правилу:
a) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Укажите такое наименьшее число \(N\), для которого результат работы алгоритма больше \(137\). В ответе это число запишите в десятичной системе счисления.
Решение:
C++
#include<iostream>
using namespace std;
unsigned int sum_digits(unsigned int N) {
unsigned int sum = 0;
for (; N; sum += N & 1, N >>= 1) ;
return sum;
}
unsigned int R(unsigned int N) {
for (int i = 0; i < 2; i++)
N = (N << 1) + sum_digits(N) % 2;
return N;
}
int32_t main() {
for (unsigned int N = 1; N < 1000; N++)
if (R(N) > 137) {
cout << N << endl;
break;
}
}
Ответ: 35
Задание 5. Информатика. ЕГЭ. Поляков-7
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются ещё два разряда по следующему правилу:
a) складываются все цифры двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\). Укажите такое наименьшее число \(N\), для которого результат работы алгоритма больше \(125\). В ответе это число запишите в десятичной системе счисления.
Решение:
C++
#include<iostream>
using namespace std;
unsigned int R(unsigned int N) {
for (int i = 0; i < 2; i++) {
unsigned int N1 = N, s = 0;
while (N1) {
s += N1 & 1;
N1 >>= 1;
}
N = (N << 1) + s % 2;
}
return N;
}
int32_t main() {
for (unsigned int N = 1; N < 1000; N++)
if (R(N) > 125) {
cout << N << endl;
break;
}
}
Ответ: 31
Задание 5. Информатика. ЕГЭ 2024. Пересдача. 04.07.2024
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
a) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(0\), а затем два левых разряда заменяются на \(10\);
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается \(1\), а затем два левых разряда заменяются на \(11\).
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Результат переводится в десятичную запись и выводится на экран.
Например, для исходного числа \(6_{10} = 110_2\) результатом является число \(8_{10} = 1000_2\), а для исходного числа \(4_{10} = 100_2\) это число \(13_{10} = 1101_2\).
Укажите минимальное число \(R\), которое может быть результатом работы данного алгоритма, при условии, что \(N\) больше \(27\). В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = bin(N)[2:]
if bn.count('1') % 2 == 0:
t = '10' + bn[2:] + '0'
else:
t = '11' + bn[2:] + '1'
return int(t, base=2)
a = [R(N) for N in range(28, 1000)]
print(min(a))
Ответ: 42
Задание 5. Информатика. ЕГЭ 2024. Резерв. 18.05.2024
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
К этой записи дописываются справа ещё два разряда по следующему правилу::
a) складываются все цифры двоичной записи числа \(N\), и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы её цифр на \(2\).
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R\).
Укажите минимальное число \(R\), которое превышает число \(123\) и может являться результатом работы данного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = bin(N)[2:]
bn += str(bn.count('1') % 2)
bn += '0'
return int(bn, base=2)
a = []
for N in range(1, 400):
t = R(N)
if t > 123:
a.append(t)
print(min(a))
Ответ: 126
Задание 5. Информатика. ЕГЭ 2024. Крылов-20
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
Каждый разряд этой записи заменяется двумя разрядами по следующему правилу: если в разряде стоит \(0\), то вместо него пишется \(00\); если в разряде стоит \(1\), то \(1\) заменяется на \(11\).
Например, двоичная запись \(1001\) числа \(9\) будет преобразована в \(11000011\).
Полученная таким образом запись (в ней в два раза больше разрядов, чем в записи исходного числа \(N\)) является двоичной записью числа \(R\) — результата работы данного алгоритма.
Укажите минимальное число \(R\), большее \(63\), которое может являться результатом работы данного алгоритма. В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
tmp = bin(N)[2:]
a = [c + c for c in tmp]
return int(''.join(a), base=2)
arr = [R(N) for N in range(1, 100) if R(N) > 63]
print(min(arr))
Ответ: 192
Задание 5. Информатика. ЕГЭ 2024. Крылов-19
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
Каждый разряд этой записи заменяется двумя разрядами по следующему правилу: если в разряде стоит \(0\), то вместо него пишется \(00\); если в разряде стоит \(1\), то \(1\) заменяется на \(11\).
Например, двоичная запись \(1001\) числа \(9\) будет преобразована в \(11000011\).
Полученная таким образом запись (в ней в два раза больше разрядов, чем в записи исходного числа \(N\)) является двоичной записью числа \(R\) — результата работы данного алгоритма.
Укажите минимальное число \(R\), большее \(32\), которое может являться результатом работы данного алгоритма. В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
tmp = bin(N)[2:]
a = [c + c for c in tmp]
return int(''.join(a), base=2)
arr = [R(N) for N in range(1, 100) if R(N) > 32]
print(min(arr))
Ответ: 48
Задание 5. Информатика. ЕГЭ 2024. Крылов-18
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Из числа \(N\) вычитается остаток от деления \(N\) на \(8\), после чего прибавляется остаток от деления \(N\) на \(2\).
Строиться двоичная запись полученного результата.
К этой записи дописываются справа ещё два разряда по следующему правилу:
складываются все цифры построенной двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
над этой записью производятся те же действия — справа дописывается остаток от деления суммы её цифр на \(2\).
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Укажите минимальное число \(R\), большее \(97\), которое может являться результатом работы данного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
N -= N % 8
N += N % 2
bt = bin(N)[2:]
bt = bt + str(bt.count('1') % 2)
bt = bt + str(bt.count('1') % 2)
return int(bt, base=2)
a = [R(N) for N in range(1, 200) if R(N) > 97]
print(min(a))
Ответ: 130
Задание 5. Информатика. ЕГЭ 2024. Крылов-17
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Из числа \(N\) вычитается остаток от деления \(N\) на \(8\), после чего прибавляется остаток от деления \(N\) на \(2\).
Строиться двоичная запись полученного результата.
К этой записи дописываются справа ещё два разряда по следующему правилу:
складываются все цифры построенной двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
над этой записью производятся те же действия — справа дописывается остаток от деления суммы её цифр на \(2\).
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Укажите минимальное число \(R\), большее \(90\), которое может являться результатом работы данного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
N -= N % 8
N += N % 2
bt = bin(N)[2:]
bt = bt + str(bt.count('1') % 2)
bt = bt + str(bt.count('1') % 2)
return int(bt, base=2)
a = [R(N) for N in range(1, 200) if R(N) > 90]
print(min(a))
Ответ: 96
Задание 5. Информатика. ЕГЭ 2024. Крылов-16
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Из числа \(N\) вычитается остаток от деления \(N\) на \(4\).
Строиться двоичная запись полученного результата.
К этой записи дописываются справа ещё два разряда по следующему правилу:
складываются все цифры построенной двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
над этой записью производятся те же действия — справа дописывается остаток от деления суммы её цифр на \(2\).
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Укажите такое наибольшее число \(N\), для которого результат работы данного алгоритма меньше числа \(47\). В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
t = N - N % 4
bt = bin(t)[2:]
bt = bt + str(bt.count('1') % 2)
bt = bt + str(bt.count('1') % 2)
return int(bt, base=2)
a = [N for N in range(1, 47) if R(N) < 47]
print(max(a))
Ответ: 11
Задание 5. Информатика. ЕГЭ 2024. Крылов-15
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Из числа \(N\) вычитается остаток от деления \(N\) на \(4\).
Строиться двоичная запись полученного результата.
К этой записи дописываются справа ещё два разряда по следующему правилу:
складываются все цифры построенной двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
над этой записью производятся те же действия — справа дописывается остаток от деления суммы её цифр на \(2\).
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Укажите такое наибольшее число \(N\), для которого результат работы данного алгоритма меньше числа \(64\). В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
t = N - N % 4
bt = bin(t)[2:]
bt = bt + str(bt.count('1') % 2)
bt = bt + str(bt.count('1') % 2)
return int(bt, base=2)
a = [N for N in range(1, 64) if R(N) < 64]
print(max(a))
Ответ: 15
Задание 5. Информатика. ЕГЭ 2024. Крылов-14
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Из числа \(N\) вычитается остаток от деления \(N\) на \(4\).
Строиться двоичная запись полученного результата.
К этой записи дописываются справа ещё два разряда по следующему правилу:
складываются все цифры построенной двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
над этой записью производятся те же действия — справа дописывается остаток от деления суммы её цифр на \(2\).
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Укажите минимальное число \(R\), большее \(100\), которое может являться результатом работы данного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
t = N - N % 4
bt = bin(t)[2:]
bt = bt + str(bt.count('1') % 2)
bt = bt + str(bt.count('1') % 2)
return int(bt, base=2)
a = [R(N) for N in range(1, 100) if R(N) > 100]
print(min(a))
Ответ: 114
Задание 5. Информатика. ЕГЭ 2024. Крылов-13
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Из числа \(N\) вычитается остаток от деления \(N\) на \(4\).
Строиться двоичная запись полученного результата.
К этой записи дописываются справа ещё два разряда по следующему правилу:
складываются все цифры построенной двоичной записи, и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001\);
над этой записью производятся те же действия — справа дописывается остаток от деления суммы её цифр на \(2\).
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Укажите минимальное число \(R\), большее \(56\), которое может являться результатом работы данного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
t = N - N % 4
bt = bin(t)[2:]
bt = bt + str(bt.count('1') % 2)
bt = bt + str(bt.count('1') % 2)
return int(bt, base=2)
a = [R(N) for N in range(1, 100) if R(N) > 56]
print(min(a))
Ответ: 66
Задание 5. Информатика. ЕГЭ 2024. Крылов-12
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Перемножаются все цифры исходного числа.
Суммируются все цифры исходного числа.
Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).
Пример. Исходное число \(621\). Произведение цифр: \(6 \times 2 \times 1 = 12\); сумма цифр: \(6 + 2 + 1 = 9\). Результат: \(129\).
Укажите наибольшее число, при обработки которого автомат выдаст число \(24019\).
Решение:
Python
def f(num):
n = [int(x) for x in str(num)]
p = n[0] * n[1] * n[2]
s = sum(n)
if p >= s:
t = str(p) + str(s)
else:
t = str(s) + str(p)
return int(t)
for n in range(999, 99, -1):
if f(n) == 24019:
print(n)
break
Ответ: 865
Задание 5. Информатика. ЕГЭ 2024. Крылов-11
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Перемножаются все цифры исходного числа.
Суммируются все цифры исходного числа.
Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).
Пример. Исходное число \(621\). Произведение цифр: \(6 \times 2 \times 1 = 12\); сумма цифр: \(6 + 2 + 1 = 9\). Результат: \(129\).
Укажите наибольшее число, при обработки которого автомат выдаст число \(33621\).
Решение:
Python
def f(num):
n = [int(x) for x in str(num)]
p = n[0] * n[1] * n[2]
s = sum(n)
if p >= s:
t = str(p) + str(s)
else:
t = str(s) + str(p)
return int(t)
for n in range(999, 99, -1):
if f(n) == 33621:
print(n)
break
Ответ: 876
Задание 5. Информатика. ЕГЭ 2024. Крылов-10
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Вычисляются суммы квадратов первой и второй, а также второй и третьей цифр исходного числа.
Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).
Пример. Исходное число \(621\). Суммы квадратов цифр: \(6^2 + 2^2 = 40\), \(2^2 + 1^2 = 5\). Результат: \(405\).
Укажите наибольшее число, при обработки которого автомат выдаст число \(7434\).
Решение:
Python
def f(num):
n = [int(x) for x in str(num)]
s1, s2 = n[0]**2 + n[1]**2, n[1]**2 + n[2]**2
if s1 >= s2:
t = str(s1) + str(s2)
else:
t = str(s2) + str(s1)
return int(t)
for n in range(999, 99, -1):
if f(n) == 7434:
print(n)
break
Ответ: 753
Задание 5. Информатика. ЕГЭ 2024. Крылов-9
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
Вычисляются суммы квадратов первой и второй, а также второй и третьей цифр исходного числа.
Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).
Пример. Исходное число \(621\). Суммы квадратов цифр: \(6^2 + 2^2 = 40\), \(2^2 + 1^2 = 5\). Результат: \(405\).
Укажите наибольшее число, при обработки которого автомат выдаст число \(9752\).
Решение:
Python
def f(num):
n = [int(x) for x in str(num)]
s1, s2 = n[0]**2 + n[1]**2, n[1]**2 + n[2]**2
if s1 >= s2:
t = str(s1) + str(s2)
else:
t = str(s2) + str(s1)
return int(t)
for n in range(999, 99, -1):
if f(n) == 9752:
print(n)
break
Ответ: 946
Задание 5. Информатика. ЕГЭ 2024. Крылов-8
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строиться двоичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
если количество значащих цифр в двоичной записи числа чётное, то к этой записи в середину дописывается \(1\);
если количество значащих цифр в двоичной записи нечётное, то запись не изменяется.
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Например, для исходного числа \(5 = 101_2\) результатом является число \(101_2 = 5_{10}\), а для исходного числа \(2_{10} = 10_2\) результатом является число \(110_2 = 6_{10}\).
Укажите максимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), не меньшее, чем \(26\). В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = bin(N)[2:]
if len(bn) % 2 == 0:
tmp = bn[:len(bn) // 2] + '1' + bn[len(bn) // 2:]
else:
tmp = bn
return int(tmp, base=2)
a = []
for N in range(2, 50):
if R(N) <= 26:
a.append(N)
print(a[-1])
Ответ: 26
Задание 5. Информатика. ЕГЭ 2024. Основная волна. 07.06.2024
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строится двоичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
a) если сумма цифр двоичной записи числа чётная, то к этой записи справа дописывается \(0\), а затем два левых разряда заменяются на \(10\);
б) если сумма цифр двоичной записи числа нечётная, то к этой записи справа дописывается \(1\), а затем два левых разряда заменяются на \(11\).
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(6 = 110_2\) результатом является число \(1000_2 = 8\), а для исходного числа \(4 = 100_2\) это число \(1101_2 = 13\).
Укажите минимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), большее \(50\).
В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = bin(N)[2:]
if bn.count('1') % 2 == 0:
tmp = '10' + bn[2:] + '0'
else:
tmp = '11' + bn[2:] + '1'
return int(tmp, base=2)
#print(R(6), R(4))
for N in range(4, 1000):
if R(N) > 50:
print(N)
break
Ответ: 19
Задание 5. Информатика. ЕГЭ 2024. Крылов-7
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строиться двоичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
если количество значащих цифр в двоичной записи числа чётное, то к этой записи в середину дописывается \(1\);
если количество значащих цифр в двоичной записи нечётное, то запись не изменяется.
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Например, для исходного числа \(5 = 101_2\) результатом является число \(101_2 = 5_{10}\), а для исходного числа \(2_{10} = 10_2\) результатом является число \(110_2 = 6_{10}\).
Укажите минимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), не меньшее, чем \(26\). В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
temp = bin(N)[2:]
s = len(temp)
if s % 2 == 0:
return int(temp[: s // 2] + '1' + temp[s // 2 :], 2)
else:
return N
N = 7
while R(N) < 26:
N += 1
print(N)
Ответ: 12
Задание 5. Информатика. ЕГЭ 2024. Крылов-6
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строиться двоичная запись числа \(N\).
Далее, если исходное число чётное, то справа к построенной двоичной записи числа \(N\) приписывается \(0\), если нечётное, то приписывается \(1\).
Далее полученная на втором шаге алгоритма запись обрабатывается по следующему правилу:
если количество единиц в двоичной записи кратно трём, то в этой записи два левых разряда заменяются на \(11\);
если количество единиц в двоичной записи некратно трём, то в этой записи два левых разряда заменяются на \(10\).
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Например, для исходного числа \(6 = 110_2\) результатом является число \(1000_2 = 8_{10}\), а для исходного числа \(3 = 11_2\) это число \(111_2 = 7_{10}\).
Укажите максимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), не большее, чем \(37\). В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
b = bin(N)[2:]
b += b[-1]
temp = list(b)
temp[1] = '1' if b.count('1') % 3 == 0 else '0'
return int(''.join(temp), 2)
ans = []
for N in range(7, 1000):
if R(N) < 38:
ans.append(N)
print(ans[-1])
Ответ: 25
Задание 5. Информатика. ЕГЭ 2024. Крылов-5
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строиться двоичная запись числа \(N\).
Далее, если исходное число чётное, то справа к построенной двоичной записи числа \(N\) приписывается \(0\), если нечётное, то приписывается \(1\).
Далее полученная на втором шаге алгоритма запись обрабатывается по следующему правилу:
если количество единиц в двоичной записи кратно трём, то в этой записи два левых разряда заменяются на \(11\);
если количество единиц в двоичной записи некратно трём, то в этой записи два левых разряда заменяются на \(10\).
Полученная таким образом запись является двоичной записью искомого числа \(R\).
Например, для исходного числа \(6 = 110_2\) результатом является число \(1000_2 = 8_{10}\), а для исходного числа \(3 = 11_2\) это число \(111_2 = 7_{10}\).
Укажите минимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), не меньшее, чем \(26\). В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
b = bin(N)[2:]
b += b[-1]
temp = list(b)
temp[1] = '1' if b.count('1') % 3 == 0 else '0'
return int(''.join(temp), 2)
N = 7
while R(N) < 26:
N += 1
print(N)
Ответ: 9
Задание 5. Информатика. ЕГЭ 2024. Крылов-4
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строиться четверичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
если число \(N\) делится на \(4\), то к этой записи дописываются две последние четверичные цифры;
если число \(N\) на \(4\) не делится, то остаток от деления умножается на \(2\), переводится в четверичную запись и дописывается в конец числа.
Полученная таким образом запись является четверичной записью искомого числа \(R\).
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11 = 23_4\) результатом является число \(2312_4 = 182\), а для исходного числа \(12 = 30_4\) это число \(3030_4 = 204\).
Укажите минимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), не меньшее \(1088\).
Решение:
Python
def conv(N):
res = ''
while N:
res = str(N % 4) + res
N //= 4
return res
def R(N):
res = conv(N)
r = N % 4
if r == 0:
res += res[-2:]
else:
res += conv(2*r)
return int(res, 4)
N = 13
while R(N) < 1088:
N += 1
print(N)
Ответ: 68
Задание 5. Информатика. ЕГЭ 2024. Крылов-3
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строиться четверичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
если число \(N\) делится на \(4\), то к этой записи дописываются две последние четверичные цифры;
если число \(N\) на \(4\) не делится, то остаток от деления умножается на \(2\), переводится в четверичную запись и дописывается в конец числа.
Полученная таким образом запись является четверичной записью искомого числа \(R\).
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11 = 23_4\) результатом является число \(2312_4 = 182\), а для исходного числа \(12 = 30_4\) это число \(3030_4 = 204\).
Укажите минимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), не меньшее \(1025\).
Решение:
Python
def conv(N):
res = ''
while N:
res = str(N % 4) + res
N //= 4
return res
def R(N):
res = conv(N)
r = N % 4
if r == 0:
res += res[-2:]
else:
res += conv(2*r)
return int(res, 4)
N = 13
while R(N) < 1025:
N += 1
print(N)
Ответ: 66
Задание 5. Информатика. ЕГЭ 2024. Крылов-2
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строиться четверичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
если число \(N\) делится на \(4\), то к этой записи дописываются две последние четверичные цифры;
если число \(N\) на \(4\) не делится, то остаток от деления умножается на \(2\), переводится в четверичную запись и дописывается в конец числа.
Полученная таким образом запись является четверичной записью искомого числа \(R\).
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11 = 23_4\) результатом является число \(2312_4 = 182\), а для исходного числа \(12 = 30_4\) это число \(3030_4 = 204\).
Укажите максимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), меньшее \(369\).
Решение:
Python
def conv(n):
res = ''
while n:
r = n % 4
n //= 4
res = str(r) + res
return res
def R(N):
ans = conv(N)
r = N % 4
if r == 0:
ans += ans[-2:]
else:
ans += conv(2*r)
return int(ans, 4)
N = 11
for i in range(11, 1000):
if R(i) < 369:
N = i
print(N)
Ответ: 89
Задание 5. Информатика. ЕГЭ 2024. Крылов-1
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
Строиться четверичная запись числа \(N\).
Далее эта запись обрабатывается по следующему правилу:
если число \(N\) делится на \(4\), то к этой записи дописываются две последние четверичные цифры;
если число \(N\) на \(4\) не делится, то остаток от деления умножается на \(2\), переводится в четверичную запись и дописывается в конец числа.
Полученная таким образом запись является четверичной записью искомого числа \(R\).
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(11 = 23_4\) результатом является число \(2312_4 = 182\), а для исходного числа \(12 = 30_4\) это число \(3030_4 = 204\).
Укажите максимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), меньшее \(261\).
Решение:
Python
def conv(n):
res = ''
while n:
r = n % 4
n //= 4
res = str(r) + res
return res
def R(N):
ans = conv(N)
r = N % 4
if r == 0:
ans += ans[-2:]
else:
ans += conv(2*r)
return int(ans, 4)
N = 11
for i in range(11, 1000):
if R(i) < 261:
N = i
print(N)
Ответ: 61