Заданий номер 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