TP PYTHON - 02 4
[Qu. 12] Soit n>2 et soit p=min {d∈N−{0,1};d|n}.Justifier que p∈Ppuis écrire une fonction
ppfp(n) qui renvoie le plus petit facteur premier d’un entier n>2.
[Qu. 13] En invoquant de façon répétée la fonction ppfp, on obtient tous les facteurs premiers d’un
entier n>2.Détailler ce processus – à la main, puis en contrôlant avec l’ordinateur – pour n=5888069.
[Qu. 14] Ecrire une fonction pre_dfp(n) qui renvoie la liste des facteurs premiers de n,chacun d’eux
étant répété le bon nombre de fois. Par exemple, étant donné que 1350 =2×33×52,on aura :
>>> pre_dfp(1350)
[2, 3, 3, 3, 5, 5]
[Qu. 15] On souhaite obtenir une forme plus compacte pour la décomposition en facteurs premiers
d’un entier ... quelque chose du genre :
>>> dfp(1350)
[[2, 1], [3, 3], [5, 2]]
1) Ecrire une fonction reduc_liste(L) qui, à partir d’une liste d’entiers L =[r1,··· ,rn] renvoie,
sous la forme d’une liste de listes de longueur 2, les différents termes de Let le nombre de fois
que chacun d’eux apparaît consécutivement. Par exemple :
>>> reduc_liste([1,2,2,2,1,1,3,3,3,1,1])
[[1, 1], [2, 3], [1, 2], [3, 3], [1, 2]]
2) Ecrire, en combinant ce qui précède, la fonction dfp.
[Qu. 16] Ecrire une fonction gen_prod(L, p, n) qui, partir d’une liste Ld’entiers, construit la liste
déduite de Len multipliant chacun de ses termes par les pkpour 0 6k6n.
[Qu. 17] En déduire, en combinant les fonctions dfp et gen_prod, une fonction diviseurs(n) qui
renvoie (plus efficacement qu’à la question Q-3) la liste croissante des diviseurs d’un entier n.
[Qu. 18] Calculer de nouveau les nombres parfaits inférieurs ou égaux à 104et constater (expérimen-
talement) le gain de performance.
[Qu. 19] Dresser (par ordinateur) une table indiquant, pour 2 6n631,si 2n−1 est premier ou
non. Observer et conjecturer un énoncé reliant les deux assertions n∈Pet 2n−1∈P.Sauriez-vous
prouver cette conjecture ?
[Qu. 20] On suppose que p∈Pet 2p−1∈P.On note Ep=2p−1(2p−1).
1) Quels sont les diviseurs de Ep? Que vaut leur somme ? Que peut-on en déduire concernant Ep?
2) En déduire un cinquième nombre parfait (normalement, quatre nombres parfaits ont été détectés
aux questions Q-3 et Q-15).
[Qu. 21] On dit que deux entiers naturels forment un couple de nombres amicaux lorsque chacun
d’eux est la somme des diviseurs stricts de l’autre. Vérifier qu’il n’existe, parmi les couples (a,b)tels
que 1 6a<b6300,qu’un seul couple de nombres amicaux et le déterminer.