J'aimerais connaitre le résultat de la primorielle d'un nombre alors si quelqu'un avait une liste ou un programme en C (complet car je n'y connais rien) à me donner ça serait sympa !
Merci
-----
01/07/2011, 00h50
#2
Tiky
Date d'inscription
janvier 2011
Messages
1 150
Re : Fonction primorielle
Bonsoir,
Quel est l'entier dont tu veux la primorielle? J'ai écrit rapidement un programme en C++, toutefois on constate qu'il n'est possible de calculer les primorielles que jusqu'à 52.
En effet le plus grand type en C/C++ est uint64_t et la primorielle 53 est trop grande.
Il reste le type long long mais les standards garantissent seulement que ce type fait au moins 64 bits.
Autrement dit, à moins d'utiliser une bibliothèque externe pour gérer les grands nombres (http://gmplib.org/),
le programme en C/C++ se résume à un tableau statique contenant les nombres premiers inférieurs à 52 et une boucle stupide pour calculer la primorielle.
Si tu le souhaites, je peux t'écrire un programme en C ou C++ qui utilise la bibliothèque GMP ou autre.
01/07/2011, 14h24
#3
Tiky
Date d'inscription
janvier 2011
Messages
1 150
Re : Fonction primorielle
Bonjour,
Je t'ai écrit un programme en C++ utilisant GMP. J'ai pu calculer en moins de cinq minutes la primorielle de dix millions. Le résultat fait 4 millions de chiffres et nécessite près de 42 Mio pour être stocker dans un fichier texte.
Pour la compilation, il te faut installer la bibliothèque GMP avec les headers.
Si tu utilises le compilateur GCC (ou Mingw sous Windows), rajoute les deux options suivantes à l'éditeur de liens : -lgmpxx -lgmp
Si tu es sous Unix, il suffit d'utiliser la ligne de commande suivante pour compiler le programme :
Pour calculer la primorielle de xxx, il suffit de taper dans la console :
Code:
./primorielle xxx
Pour le test de primalité, j'ai utilisé le bon vieux crible d’Ératosthène. Ce n'est pas le meilleur algorithme mais c'est sans doute le plus simple à mettre en œuvre.
02/07/2011, 14h02
#4
invitec10a5f77
Date d'inscription
janvier 1970
Messages
35
Re : Fonction primorielle
Wahou, que dire ?
Un grand merci ! Tu m'as donné tous les éléments qu'il me faut en très peu de temps et de manière détaillée. Super !
Le nombre dont je veux la primorielle est 2347 donc je vais avoir besoin de la bibliothèque GMP si j'ai bien compris.
Je n'ai pas encore testé tout ça donc je te tiendrais au courant si je ne comprend pas quelque chose ou si ça bug.
Re-merci en tout cas !
Aujourd'hui
A voir en vidéo sur Futura
02/07/2011, 14h40
#5
Tiky
Date d'inscription
janvier 2011
Messages
1 150
Re : Fonction primorielle
D'après mon programme, la primorielle de 2347 est :