Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.
Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Дана программа для редактора:
НАЧАЛО
ПОКА НЕ нашлось (00)
заменить (02, 101)
заменить (11, 2)
заменить (12, 21)
заменить (010, 00)
КОНЕЦ ПОКА
КОНЕЦ
Известно, что исходная строка A содержала ровно два нуля — на первом и на последнем месте, а также поровну единиц и двоек, при этом всего в строке A было более 140 цифр. После выполнения данной программы получилась строка B, сумма цифр которой оказалась простым числом. Какое наименьшее количество единиц могло быть в строке A?
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.
Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Дана программа для редактора:
НАЧАЛО
ПОКА НЕ нашлось (00)
заменить (02, 101)
заменить (11, 2)
заменить (12, 21)
заменить (010, 00)
КОНЕЦ ПОКА
КОНЕЦ
Известно, что исходная строка A содержала ровно два нуля — на первом и на последнем месте, а также поровну единиц и двоек, при этом всего в строке A было более 140 цифр. После выполнения данной программы получилась строка B, сумма цифр которой оказалась простым числом. Какое наименьшее количество единиц могло быть в строке A?
💡 Пошаговый разбор и решение:
Заметим, что сумма цифр исходной строки будет на единицу больше суммы цифр полученной строки.
Приведём решение данной задачи на языке Python.
def is_prime(x):
for i in range(2, (x//2)+1):
if x % i == 0:
return False
return True
for i in range(69, 100):
r = i * 1 + i * 2 - 1
if is_prime(r):
print(i)
break
Ответ: 76.
Приведём решение Бориса Савельева на языке Python.
from random import shuffle
minA = 10**10
for i in range(142, 200, 2):
for j in range(0, 40):
s = list('1' * (i//2) + '2' * (i//2))
shuffle(s)
s = '0' + ''.join(s)+'0'
s1 = s.count('1')
while not '00' in s:
s = s.replace('02', '101', 1)
s = s.replace('11', '2', 1)
s = s.replace('12', '21', 1)
s = s.replace('010', '00', 1)
suma = s.count('1') + s.count('2') * 2
f = 0
for t in range(2, suma):
if suma % t == 0:
f = 1
break
if f == 0:
minA = min(minA, s1)
print(minA)
Приведём решение данной задачи на языке Python.
def is_prime(x):
for i in range(2, (x//2)+1):
if x % i == 0:
return False
return True
for i in range(69, 100):
r = i * 1 + i * 2 - 1
if is_prime(r):
print(i)
break
Ответ: 76.
Приведём решение Бориса Савельева на языке Python.
from random import shuffle
minA = 10**10
for i in range(142, 200, 2):
for j in range(0, 40):
s = list('1' * (i//2) + '2' * (i//2))
shuffle(s)
s = '0' + ''.join(s)+'0'
s1 = s.count('1')
while not '00' in s:
s = s.replace('02', '101', 1)
s = s.replace('11', '2', 1)
s = s.replace('12', '21', 1)
s = s.replace('010', '00', 1)
suma = s.count('1') + s.count('2') * 2
f = 0
for t in range(2, suma):
if suma % t == 0:
f = 1
break
if f == 0:
minA = min(minA, s1)
print(minA)
Правильный ответ:
76
📚 Похожие разобранные задания по предмету:
ID 30689 • Задание №7
Рисунок размером 4 × 5 дюймов отсканировали с разрешением 256 dpi и использованием 256 оттенков. Определите ра...
ID 34703 • Задание №27
Дана последовательность целых чисел. Расстояние между элементами последовательности — это разность их порядко...
🔗 Другие задания линии №12 по предмету Информатика:
ID 31602
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться ...
ID 31603
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться ...
ID 31604
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться ...
ID 31605
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться ...
ID 31606
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться ...