можно выяснить является ли число простым. Суть этого метода заключалась в следующем.
Преобразуем число в унарную форму, ее можно представить как счет на палочках
3 записывается как 111
7 как 1111111
и все это дело, как я по быстрому накидала для шел, перенаправляется сюда
Код: Выделить всё
egrep -x '1?|(1{2,})\1+'По быстрому проверяю строчку
Shell
shuf -e 1 -zrn 10 | egrep -x '1?|(1{2,})\1+'
Двоичный файл (стандартный ввод) совпадаетShell
shuf -e 1 -zrn 10 | cat -vet
1^@1^@1^@1^@1^@Shell
echo $(shuf -e 1 -zrn 10) | egrep -x '1?|(1{2,})\1+'
bash: предупреждение: подстановка команды: во входных данных проигнорирован нулевой байтКод: Выделить всё
yes 1 | head -10 | tr -d '\n'Код: Выделить всё
shuf -e 1 -zrn 10 | tr -d '\0' | egrep -x '1?|(1{2,})\1+'и нет выгоды в использовании shuf
Код: Выделить всё
seq -s* 10 | tr -d '[0-9]\n' | egrep -x '.?|(.{2,})\1+'и передавать такую строчку в пайп придется опять же через команду tr. На всякий случай смотрю на результат
Shell
echo $_{1..10}$'\b'* | cat -vet
^H* ^H* ^H* ^H* ^H* ^H* ^H* ^H* ^H* ^H*$может подправить регулярку чтобы она учитывала разделитель, наверное опция -z в grep здесь не поможет?