Ответ:
import re
s = input('>> ')
s = re.sub(r'[^\w\s]+|[\d]+', r'',s)
print(s)
Объяснение:
Python 3.7
tg = Fr0DK
Начинаем заполнять предложенную табличку. Читаем пункты условий.
1) Аня и Саша не победители по информатике - ставим два минуса, которые в табличке указаны как -(1)
2) Лена и Вася тоже не победители в информатике - ставим -(2)
И замечаем, что в колонке информатика есть только она пустая клетка. Ставим туда + и оказывается, что победитель по информатике - Миша.
Но одновременно это означает, что Миша не является победителем в других предметах и расставляем там минусы (залито салатовым цветом)
3) Саша не силен в истории - ставим -(3)
4) Лена и Саша - не победители по литературе, ставим -(4)
5) Саша и Лена также и не победители в математике - ставим -(5)
И после этого у Саши остается только один предмет - география, где и ставим +(после 5) - голубая заливка. Но тогда остальные школьники не являются победителями по географии и мы ставим им минусы в этом предмете (также голубая заливка)
6) Аня - не победитель по литературе, ставим -(6).
Но тогда литература достается Васе (желтая заливка) и минусы у Васи достаются Истории и Метематике (также залито желтым).
Условия задачи закончились. Но решение продолжается при помощи рассуждений.
7) В Математике свободная клетка есть только для Ани +(7) и тогда у Ани появляется минус в Истории.
8) Последняя пустая клетка - это История у Лены. +(8).
#include <iostream>
int main() {
int n;
std::cin >> n;
int i = 2;
while (n % i > 0) ++i;
std::cout << i;
return 0;
}
Чтобы решить эту задачу нам нужно научиться определять, куда выгодно сесть бабочке. Представим, что столбов 10, тогда бабочки сидят на столбах 1, 9, 10. Бабочка, что справа летит на столб между 1 и 9 а именно на 5ый((9-1-1)/2+1 = 4,5, но число столбов нечетное, пожтому мы округляем до большего) Разберёмся с тем, как мы получили число пять, составив формулу. Чтобы узнать, число, находящееся между двумя числами, надо из максимального вычесть минимальное и ещё 1, затем разделить на 2 и прибавить меньшее число. Если ответ получается дробным, то округляем в большую сторону, а если целым, то надо учитывать сторону, с которой совершается ход.
(S-F-1)/2+F+D
F - первое число
S - второе число
D - если число целое, то смотрим, с какой стороны летит бабочка. если справа, то = 0, если слева, то = 1, в остальных случаях (когда нечетн.) = 0.
Теперь к самому решению. Нам надо, чтобы ходов было как можно больше, столбы, оказавшиеся с краю от крайних бабочек - выбывают из игры, а значит, что за первый ход нам надо избавиться от минимального количества столбов, тогда выберем такое расположение: 1 2017 2018. Начинает бабочка справа.
1 ход: 1 1008 2017
2 ход: 1008 1513 2017
3 ход: 1008 1260 1513
4 ход: 1260 1387 1513
5 ход: 1260 1323 1387
6 ход: 1323 1355 1387
7 ход: 1323 1339 1355
8 ход: 1339 1347 1355
9 ход: 1339 1343 1347
10 ход: 1343 1345 1347
11 ход: 1343 1344 1345
Ответ: 11 ходов.