Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.regexp > #231 > unrolled thread
| Started by | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| First post | 2024-10-31 13:58 +0100 |
| Last post | 2024-12-01 10:30 +0100 |
| Articles | 2 — 1 participant |
Back to article view | Back to fr.comp.lang.regexp
Trouver les nombres premiers avec une regexp Olivier Miakinen <om+news@miakinen.net> - 2024-10-31 13:58 +0100
Re: Trouver les nombres premiers avec une regexp Olivier Miakinen <om+news@miakinen.net> - 2024-12-01 10:30 +0100
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2024-10-31 13:58 +0100 |
| Subject | Trouver les nombres premiers avec une regexp |
| Message-ID | <vfvuuc$1bfc$1@cabale.usenet-fr.net> |
Bonjour, Matt Parker vient de sortir une vidéo (en anglais) où il décortique une regexp qui permet de tester si une chaîne composée de n caractères identiques a comme longueur (n donc) un nombre premier : How on Earth does ^.?$|^(..+?)\1+$ produce primes? <https://www.youtube.com/watch?v=5vbk0TwkokM> En réalité, cette regexp ^.?$|^(..+?)\1+$ retourne vrai si la longueur n'est /pas/ un nombre premier. Et du coup le code python que Matt utilise est : import re n = (le nombre à tester) print(not re.match(r'^.?$|^(..+?)\1+$', '1'*n)) Et forcément je pose la question : quelle serait la regexp pour tester directement si la longueur de cette chaîne de 1 *est* un nombre premier ? -- Olivier Miakinen
[toc] | [next] | [standalone]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2024-12-01 10:30 +0100 |
| Message-ID | <vihabe$1csm$1@cabale.usenet-fr.net> |
| In reply to | #231 |
Le 31/10/2024 13:58, j'écrivais : > > Matt Parker vient de sortir une vidéo (en anglais) où il décortique une regexp > qui permet de tester si une chaîne composée de n caractères identiques a comme > longueur (n donc) un nombre premier : > > How on Earth does ^.?$|^(..+?)\1+$ produce primes? > <https://www.youtube.com/watch?v=5vbk0TwkokM> > > > En réalité, cette regexp ^.?$|^(..+?)\1+$ retourne vrai si la longueur n'est > /pas/ un nombre premier. Et du coup le code python que Matt utilise est : > > import re > n = (le nombre à tester) > print(not re.match(r'^.?$|^(..+?)\1+$', '1'*n)) > > > Et forcément je pose la question : quelle serait la regexp pour tester > directement si la longueur de cette chaîne de 1 *est* un nombre premier ? Une réponse évidente : utiliser une assertion négative englobant celle-ci. -- Olivier Miakinen
[toc] | [prev] | [standalone]
Back to top | Article view | fr.comp.lang.regexp
csiph-web