openssl : Les nombres premiers

OpenSSL possède une sous-commande qui permet de tester si le nombre passé en paramètre est un nombre premier.

$ openssl prime 2
2 is prime
$ openssl prime 3
3 is prime
$ openssl prime 4
4 is not prime
$ openssl prime 11
B is prime

Le résultat est retourné sous forme hexadécimale.

En ajoutant l'option "-hex", il est possible de tester une chaine hexadécimale :

$ openssl prime 449
1C1 is prime

La représentation hexadécimale du nombre 449 est donc 1C1

$ openssl prime -hex 1C1
1C1 is prime

En prime, un petit enchainement de commandes permettant d'obtenir la liste des 168 nombres premiers inférieurs à 1000.

$ for i in $(seq 0 1000); do \
result=$(openssl prime $i) \
echo $result | grep  -q "is prime$" \
if [[ $? -eq 0 ]]; then \
echo $i \
fi
done | column -x
2       3       5       7       11      13      17      19      23      29      31      37      41      43      47      53
59      61      67      71      73      79      83      89      97      101     103     107     109     113     127     131
137     139     149     151     157     163     167     173     179     181     191     193     197     199     211     223
227     229     233     239     241     251     257     263     269     271     277     281     283     293     307     311
313     317     331     337     347     349     353     359     367     373     379     383     389     397     401     409
419     421     431     433     439     443     449     457     461     463     467     479     487     491     499     503
509     521     523     541     547     557     563     569     571     577     587     593     599     601     607     613
617     619     631     641     643     647     653     659     661     673     677     683     691     701     709     719
727     733     739     743     751     757     761     769     773     787     797     809     811     821     823     827
829     839     853     857     859     863     877     881     883     887     907     911     919     929     937     941
947     953     967     971     977     983     991     997
Etiquettes: