Ответ 1
Я думаю, что статья объясняет это довольно хорошо, но я тоже попробую ее.
Вход находится в форме unary. 1 - 1, 2 - 11, 3 - 111 и т.д. Zero - это пустая строка.
Первая часть регулярного выражения соответствует 0 и 1 как неглавная. Второй - это то, где волшебство срабатывает.
(11+?) начинается с нахождения дивизоров. Он начинается с определения 11 или 2. \1 - это переменная, относящаяся к ранее зафиксированному совпадению, поэтому \1+ определяет, делится ли этот делитель на этот делитель. (111111 начинается с назначения переменной 11 и затем определяет, что оставшийся 1111 является 11 повторен, поэтому 6 делится на 2.)
Если число не делится на два, механизм регулярных выражений увеличивает делитель. (11+?) становится 111, и мы снова пытаемся. Если в любой точке регулярное выражение совпадает, число имеет делитель, который не дает остатка, поэтому число не может быть простым.