Executando verificação de segurança...
9

^.?$|^(..+?)\1+$ - isso não é um palavrão, mas um detector...

... de números não primos!


Como essa expressão regular ^.?$|^(..+?)\1+$ coincide com números inteiros não primos? Consequentemente, a negação do resultado da expressão coincide indicará um número primo! Você saberia interpretar essa ER (Expressão Regular) com certo nível de detalhe, entendendo o artifício utilizado para detectar tais números?

Um exemplo em Python 3 CLI
>>> from re import match
>>> n=7
>>> print(not match(r'^.?$|^(..+?)\1+$', '1'*n))
True
>>> n=9
>>> print(not match(r'^.?$|^(..+?)\1+$', '1'*n))
False
>>> n=11027
>>> print(not match(r'^.?$|^(..+?)\1+$', '1'*n))
True

# Adaptação de youtu.be/5vbk0TwkokM

Não tem um interpretador Python à disposição nesse instante? Tente esse da W3Schools.

Esse assunto foi tema de um vídeo recente (30.10.2024) publicado por Matt Parker (matemático) em seu canal no Youtube. Fique tranquilo, pois suas chaves pública e privada não estão comprometidas! O algoritmo apresentado tem algumas surpresas e o crivo de Eratóstenes ainda é mais eficiente para encontrar números primos.

[Keywords: big prime numbers, matt parker, regular expressions] // for [index|filter]ing purposes


Carregando publicação patrocinada...
1