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

- Implémenter sa propre logique de validation de certificats de services par Blog de Jérémy Jeanson le 03-28-2015, 13:30

- [WCF] Configuration pour publication en Release par Blog de Jérémy Jeanson le 03-26-2015, 22:54

- SQL Server Reporting Services : Comment identifier des abonnements utilisateurs pour une migration de serveur de rapport par Blog Technique de Romelard Fabrice le 03-26-2015, 10:55

- Le yOS-Tour est lancé, rendez-vous à Genève le 13 avril ! par Le blog de Patrick [MVP Office 365] le 03-25-2015, 22:58

- [ Microsoft #Azure ] Gestion des comptes, des abonnements et délégation d’administration par Le blog de Patrick [MVP Office 365] le 03-21-2015, 20:46

- Qualité de code & Indentation par Fathi Bellahcene le 03-21-2015, 16:56

- [IIS] Mais d’où sort cette configuration ? par Blog de Jérémy Jeanson le 03-21-2015, 09:27

- Avec Microsoft Office 365, la CILE travaille plus vite. par Le Blog (Vert) d'Arnaud JUND le 03-13-2015, 17:19

- SSD : Volume Impossible @ redimensionner par Blog de Jérémy Jeanson le 03-07-2015, 09:36

- Microsoft Regional Director 2.0 ! par Le blog de Patrick [MVP Office 365] le 02-23-2015, 22:10