Objectifs : Initiation à la detection et la correction des erreurs avec le compilateur gcc et le debogueur gdb. Analyse des temps de calcul par le profiler gprof. L'exercice est basé sur une méthode connue de tous pour construire la liste des nombres premiers : le crible d'Eratostène.Culture scientifique : Erasostène de Cyrène savant de l'époque Euclidienne est célèbre pour son calcul de la circonférence terrestre. Je vous laisse le soin de vous documenter par vous meme. L'étude de la fonction de répartition des nombres premiers n -> p(n) = {le nombre de premiers inférieurs à n } est une question centrale de l'arithmétique. Euler utilise la formule du crible pour calculer les valeurs de p(n), de ses calculs, il devine une formule d'une élégante simplicité :
p(x) ~ x / ln(x).
Il en fit une démonstration fausse mais trés instructive : les mathématiques du XVIII n'étaient pas assez élaborées pour obtenir ce résultat qui sera prouvé un siècle plus tard par Gauss. Le terme d'erreur relatif à cette approximation conduit à Riemann à sa fameuse hypothèse. Dans les années 20, Turing essaye de transformer la machine de Kelvin ( initialement concue pour mesurer l'amplitude des marées) pour calculer et deviner une formule du terme d'erreur, il échoue mais c'est le point de départ de l'expérimentation numérique.
Temps : 1 séance de 3 heures.
Challenge.
Ecrire un nouveau programme, pour calculer p(n) pour un entier n aussi grand que possible en utilisant un tableau de bits plutot qu'un tableau de caractères.
Quelle valeur de n traite votre programme en moins de 1 minute ?
Utiliser le programme gnuplot pour faire le graphe de la fonction n -> p(n).