Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Abonnements

Regex et nombres premiers

J’aime bien faire des Regex. Je prends souvent ça comme un jeu comme d’autres font des mots croisés et il arrive régulièrement qu’on me demande d’écrire un pattern pour valider un format ou modifier une chaine de caractères par exemple.

Cependant, j’ai voulu écrire ce post pour vous parler d’une utilisation hors norme des Regex et totalement hallucinante de mon point de vue que mon ami Gilles a posté sur son wall FB : les Regex permettent de déterminer si un nombre est premier !

J’ai été plus que septique et j’ai voulu testé avant même la lecture et ça marche bien.

Vous pouvez également tester avec le code suivant :

for (; ; )
{
    var value = int.Parse(Console.ReadLine()); 
    var isPrime = ! Regex.IsMatch(new string('1', value), @"^1?$|^(11+?)\1+$");
    Console.WriteLine(isPrime);
}

Voici l’article pointé par Gilles expliquant le fonctionnement de la Regex : http://www.noulakaz.net/weblog/2007/03/18/a-regular-expression-to-check-for-prime-numbers/

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Publié mercredi 24 avril 2013 21:09 par Matthieu MEZIL

Commentaires

# re: Regex et nombres premiers @ mercredi 24 avril 2013 23:24

Concernant le StringBuilder… => new string("1", value) :)

Pour tester les regex, je pense toujours que PowerShell c'est cool :)

Par exemple :

([regex]"^1?$|^(11+?)\1+$").Match((New-object string '1', 37))

ou

(New-object string '1', 37) -match "^1?$|^(11+?)\1+$"

["37" étant ici mon nombre à tester]

J'aime beaucoup cette Regex en tout cas ;)

Troborg

# re: Regex et nombres premiers @ jeudi 25 avril 2013 11:18

J'ai mis à jour mon post. En C# aussi on a new String('1', value) :)

Matthieu MEZIL

# re: Regex et nombres premiers @ jeudi 25 avril 2013 19:42

En fait c'était pour souligner ça que j'avais mis mon commentaire à la base :D (le powershell, c'était juste en passant :P )

Et sinon ma source originale était: https://twitter.com/RegexTip

Il y a régulièrement des choses sympas sur ce compte :)

Troborg

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- « Naviguer vers le haut » dans une librairie SharePoint par Blog de Jérémy Jeanson le 10-07-2014, 13:21

- PowerShell: Comment mixer NAGIOS et PowerShell pour le monitoring applicatif par Blog Technique de Romelard Fabrice le 10-07-2014, 11:43

- ReBUILD 2014 : les présentations par Le blog de Patrick [MVP Office 365] le 10-06-2014, 09:15

- II6 Management Compatibility présente dans Windows Server Technical Preview avec IIS8 par Blog de Jérémy Jeanson le 10-05-2014, 17:37

- Soft Restart sur Windows Server Technical Preview par Blog de Jérémy Jeanson le 10-03-2014, 19:43

- Non, le certificat public du CA n’est pas un certificat client !!! par Blog de Jérémy Jeanson le 10-03-2014, 00:08

- Windows Server Technical Preview disponible via MSDN par Blog de Jérémy Jeanson le 10-02-2014, 19:05

- Focus Sauvegardes SharePoint par Le blog de Patrick [MVP Office 365] le 10-02-2014, 13:11

- Technofolies, votre évènement numérique de l'année par Le Blog (Vert) d'Arnaud JUND le 09-26-2014, 18:40

- Xamarin : From Zero to Hero par Fathi Bellahcene le 09-24-2014, 17:35