sur la répartition des nombres premiers

publicité
SUR LA RÉPARTITION DES NOMBRES PREMIERS
Problème (3 heures)
Un entier naturel x est dit
premier
si l'ensemble
de ses diviseurs positifs contient
s'il s'écrit x d d , avec 2 ¤ d , d
divise xu
deux éléments (qui sont alors 1 et x). On dit que x est
¤ x 1.
D pxq td P N | d
exactement
1
Ÿ1.
2
1
2
composé
Diviseurs et test de primalité naïf
QUESTION 1 Écrire un programme Diviseurs(x) qui étant donné un entier naturel x 0 renvoie,
sous forme d'une liste rangée dans l'ordre croissant, l'ensemble D pxq.
QUESTION 2
a) Soit x ¥ 2 un entier composé. Justier qu'il possède un diviseur d P t2 ; . . . ; ?x u.
b) En déduire un programme EstPremier(x)
qui teste si x est premier et renvoie un booléen pour le dire.
?
t
u
Ce programme eectuera Op xq opérations arithmétiques (on ne demande pas de le démontrer) et
la fonction sqrt.
n'utilisera pas
Ÿ2.
Le crible d'Eratosthène
On souhaite, étant xé N P N, construire une liste B de booléens, de longueur N 1, et telle que B[x] est vrai
si et seulement si x est premier. On part de B = [False, False, True, True, True, True, ..., True]
et on va progressivement modier les cases pour obtenir le bon résultat.
QUESTION 3 Écrire un programme PremierVraiDepuis(B, deb) qui étant donnés une liste B de
booléens et un entier naturel deb renvoie le plus petit indice x ¥ deb tel que B[x] est vrai. On renverra la
valeur 1 s'il n'existe pas de tel indice.
QUESTION 4 Écrire un programme CocherMultiplesStricts(B, x) qui étant donnés une liste de
booléens B et un indice non nul x aecte la valeur False à toutes les cases de B dont l'indice est un multiple
strict de x.
QUESTION 5
a) Justier que si l'on a coché (c'est-à-dire aecté la valeur False ?aux cases d'indices correspondants) les
nombres 0, 1, et les multiples stricts de tous les x P t2 ; 3 ; . . . ;
ng Lycée Saint Louis
1
t
xuu
, alors B est comme on le souhaite.
sur la répartition des nombres premiers
b) En déduire un programme Eratosthène(N) qui construit et renvoie B.
QUESTION 6
a) Écrire un programme LesVrais(B) qui étant donnée une liste de booléens B renvoie la liste de tous les
entiers x tels que B[x] est vrai.
b) En déduire un programme Premiers(N) qui renvoie la liste de tous les nombres premiers n'excédant
pas N, et un programme π(N) qui renvoie leur nombre.
Ÿ3.
Logarithmes
Dans cette partie on s'eorce de caluler des valeurs approchées de la fonction
πpNq card tx P N | x est premier et x ¤ Nu .
Nous allons plus précisément nous intéresser à deux approximations classiques, la première est
π pNq N
lnpNq 1
et la seconde est πpNq LipNq, utilisant la fonction d'
écart logarithme intégral
dénie par
wx dt
Lipxq .
lnptq
2
Le tableau ci-dessus donne une idée de la qualité de ces approximations (les valeurs des deux dernières
colonnes sont arrondies à l'entier le plus proche).
3.1
N
π pNq
102
25
106
78 498
109
50 847 534
1015
29 844 570 422 669
1023
1 925 320 391 606 803 968 923
Calcul de
N
lnpNq 1
π pNq
LipNq πpNq
3
4
468
129
145 992
1 700
28 336 573 668
1 052 618
742 932 439 990 454 123
7 250 186 215
lnpxq
On n'utilisera évidemment pas, dans cette partie (ni d'ailleurs dans le reste du problème) la fonction log ou
ln prédénie.
Soit f : r0 ; 8r la fonction dénie par f pxq x a, où a est un réel strictement positif et p un entier
naturel au moins égal à 2. On rappelle la formule d'itération de Newton
p
xn
1
xn ff1ppxxnqq .
n
QUESTION 7 On choisit un x ¡ ?a.
a) Esquisser la courbe représentative de la fonction f . Faire apparaître l'abscisse ?a et les premiers termes
0
de la suite px q ¥ .
ng Lycée Saint Louis
p
p
n n 0
2
sur la répartition des nombres premiers
b) Démontrer que la suite px q ¥ est décroissante
et minorée (indication : la fonction f est convexe).
?
c) Justier que la suite px q ¥ converge vers a.
QUESTION 8 Écrire le programme Racine(a, p) qui calcule une valeur approchée de ?a. On n'a
n n 0
p
n n 0
p
pas besoin de valeur très précise dans la suite, donc on arrêtera la méthode de Newton lorsque deux termes
consécutifs sont à moins de 1{10 l'un de l'autre.
QUESTION 9
a) Soit x ¡ 1. Justier qu'il existe un entier p tel que ?x 2.
b) Écrire un programme Trouver_p(x) qui détermine le plus petit entier p tel que 2
QUESTION 10 Pour x P s1 ; 2r on admet que
p
p
lnpxq ņ
k
n
p1qk 1 px k 1q ¤ px n 1q1
k 1
¡ x.
1
.
a) Déduire de cette relation un programme PetitLogarithme(x, ε) qui étant donné x P s1 ; 2r calcule
une valeur approchée de lnpxq à ε près.
b) Écrire nalement un programme ln(x, ε=1e-10) qui étant donné x ¡ 1 calcule une valeur approchée
de lnpxq à ε près.
3.2
Calcul de
Lipxq
Soit a a a a b une subdivision du segment ra ; bs en n sous-intervalles, pas forcément
régulière. On donne la formule des trapèzes
0
1
n
wb
f ptq dt a
f pa q
k
n¸1
k 0
f pak
2
1
q pa
k 1
ak q.
QUESTION 11 Écrire le programme Trapèzes(f, A) qui applique la méthode des trapèzes à la fonction
et à la subdivision représentée par la liste A. On suppose que A possède au moins deux éléments et qu'ils
sont distincts et rangés dans l'ordre croissant.
QUESTION 12 Pour calculer Lipxq on va utiliser une subdivision pa q ¤ ¤ de r2 ; xs suivant une
progression géométrique.
a) Exprimer, en fonction de x et n, la valeur du réel q ¡ 1 tel que a 2q pour tout k P t0 ; . . . ; nu.
b) Écrire le programme Subdivision(x, n) qui construit la liste A représentant la subdivision pa q ¤ ¤
de r2 ; xs. On utilisera une valeur approximative de la raison q, mais on s'assurera que le dernier élément
de la subdivision est rigoureusement égal à x.
QUESTION 13 Écrire un programme Li(x) qui calcule et renvoie une
valeur approchée de Lipxq en
?
utilisant la méthode des trapèzes et une subdivision géométrique en n x sous-intervalles.
f
k 0 k n
k
k
k 0 k n
t
Ÿ4.
3
u
Conjecture de Goldbach
Énoncée en 1742 par Christian Goldbach et Leonhard Euler elle arme que tout nombre pair au moins égal
à 6 est somme de deux nombres premiers impairs. On se propose de la vérier expérimentalement jusqu'à
une certaine borne, en construisant une liste de booléens B, de longueur N ¥ 1, telle que B[k] est vraie si et
seulement si x 2k 6 est la somme de deux nombres premiers impairs.
ng Lycée Saint Louis
3
sur la répartition des nombres premiers
QUESTION 14 Écrire un programme CocherLesSommes(N) qui construit cette liste B aussi ecacement
que possible.
QUESTION 15 En déduire un programme VérifierConjecture(N) qui renvoie True si et seulement
si la conjecture de Goldbach est vraie pour les N premiers nombres pairs supérieurs ou égaux à 6.
fin
ng
Lycée Saint Louis
4
sur la répartition des nombres premiers
Téléchargement