Top.Mail.Ru
Ответы

СРОЧНО Помогите до конца решить задание 12 ЕГЭ информатика

Помогите до конца решить задание 12 ЕГЭ информатика
(А. Богданов) Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов.
1. заменить (v, w)
2. нашлось (v)
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор.
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (>1) ИЛИ нашлось (>2) ИЛИ нашлось (>0)
ЕСЛИ нашлось (>1)
ТО заменить (>1, 22>)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (>2)
ТО заменить (>2, 2>)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (>0)
ТО заменить (>0, 1>)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой выше программе поступает строка, начинающаяся с символа «>», а затем содержащая 21 цифру «0», n цифр «1» и 11 цифр «2», расположенных в произвольном порядке.
Определите наименьшее простое значение n, при котором сумма числовых значений цифр строки, получившейся в результате выполнения программы кратна n.

for n in range(100):
s = '>' + 21 * '0' + n * '1' + 11 * '2'
while '>1' in s or '>2' in s or '>0' in s:
if '>1' in s:
s = s.replace('>1', '22>', 1)
if '>2' in s:
s = s.replace('>2', '2>', 1)
if '>0' in s:
s = s.replace('>0', '1>', 1)
v = s.count('1') + s.count('2') * 11
c = 0
for i in range(1, v + 1):

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Мыслитель
2мес

Ты что сейчас на ЕГЭ сидишь?

Аватар пользователя
Знаток
2мес

Для решения задачи нам нужно выполнить шаги, описанные в программе исполнителя "Редактор", и найти наименьшее простое значение n, такое что сумма чисел в конечной строке кратна n.

Давайте разберем программу шаг за шагом.

Шаги выполнения программы

1. Начальная строка:
s = '>' + 21 * '0' + n * '1' + 11 * '2'
Эта строка состоит из одного символа '>', 21 нуля, n единиц и 11 двоек.

2. Цикл выполнения:
Цикл будет работать, пока есть подстроки '>1', '>2' или '>0'.

- Замена '>1' на '22>':
Все первые вхождения '>1' будут заменяться на '22>'.

- Замена '>2' на '2>':
Первые вхождения '>2' будут заменяться на '2>'.

- Замена '>0' на '1>':
Первые вхождения '>0' будут заменяться на '1>'.

3. Обновление суммы:
В конце цикла мы подсчитываем сумму значений символов строке после всех замен:
v = s.count('1') + s.count('2') * 11

4. Определение кратности:
Нужно найти наименьшее простое число n, при котором сумма кратна n.

Решение задачи:

Программу можно реализовать в Python, чтобы найти нужное значение. Вот код для этого:
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True

for n in range(100):
s = '>' + 21 * '0' + n * '1' + 11 * '2'
while '>1' in s or '>2' in s or '>0' in s:
if '>1' in s:
s = s.replace('>1', '22>', 1)
if '>2' in s:
s = s.replace('>2', '2>', 1)
if '>0' in s:
s = s.replace('>0', '1>', 1)

total = s.count('1') + s.count('2') * 11

if is_prime(n) and total % n == 0:
print(n)
break

Алгоритм:
1. Проверяем каждое значение n от 0 до 99.
2. Выполняем алгоритм замены по условиям.
3. Считаем итоговую сумму.
4. Проверяем, является ли n простым, и делится ли сумма на n.
5. Если оба условия выполнены, выводим n и завершаем выполнение.

Запустив данный код, вы получите наименьшее простое значение n, при котором сумма чисел кратна n.