Регулярное выражение
^(11+)\1+$
Для чего, по вашему мнению, можно использовать данное регулярное выражение?
Подсказка: применять его следует к строке, состоящей только из единиц, например: "11111".
Ответ:
^(11+)\1+$
Для чего, по вашему мнению, можно использовать данное регулярное выражение?
Подсказка: применять его следует к строке, состоящей только из единиц, например: "11111".
Это регулярное выражение покажет, является ли число единиц в строке простым числом.
Как же это работает?
(11+) — соответствует группе единиц
\1+ — ссылка на выражение в скобках, будет соответствовать многократно повторённой той же группе единиц.
Интерпретатор регулярных выражений будет искать в строке группы единиц: сначала 11, затем 111, затем 1111 и так далее. При этом соответствие будет найдено только в том случае, если первая группа начинается с самого первого символа строки, а последняя группа заканчивается последним символом строки. Другими словами, если в строке укладывается целое число групп одинаковой длины.
Математически это означает, что данное число (полная строка единиц) делится нацело на другое число, а значит, исходное число не является простым.
Итак, если в строке число единиц — простое число, такая строка не будет подходить под это регулярное выражение. Если число единиц — не простое число, соответствие будет найдено.
Зайца не зря называют "косым". Его глаза так выступают из мохнатой головы, что он видит не только перед собой и сбоку от себя, но также видит, что делается сзади!