pourdécomposernenfacteurspremiers.Soitπ1,π2,... lasuitedesnombrespremiersenordre
croissant.
1.Poserm=n,poseri=1.
2.Sim=1,alorsterminer.
3.Siπidivisem,alorsπientredansladécomposition den.Poserm=m/πietalleren3.
4.Sinon,poseri=i+1etalleren2.
Enrésumé, l’algorithme,ditessaidesdivisionsrevientàdivisernparlesnombrespremiers.
Question5.Écrirelafonctionfactoriser(n)quiprend enargumentun entiern(n≥2),etqui
range(dansl’ordre croissantausenslarge)lesfacteurspremiersdendansun tableauglobal
facteur,supposéassez grand.Lafonctionfactoriserrenvoielenombred’entiersrangésdansfacteur.
Parexemplepourn=90,votrefonction devrarenvoyer4et remplirledébutdefacteurainsi :
2 3 3 5 ···
Iln’estpastrop difficiledevoirque,dansl’algorithmed’essaidesdivisions,on peut remplacerla
suitedesnombrespremiersparunesuiteplus simpleàcalculer,du momentque celle-cicommence
par2,soitcroissante,etcontiennelesnombrespremiers—parexemple,q1=2,qj+1=2j+1
(j≥1).Eneffet,un invariantdel’algorithme estque,àl’étape2,mn’estdivisibleparaucun des
entiersq1,... ,qi−1,etdoncparaucun nombrepremierstrictementinférieuràqi.Parconséquent,
siqidivisem(étape3),alorsqiestpremier.
Parailleurs,on peutlimiterlatailledesfacteursessayés.Lasuitedesqieststrictementcroissante,
tandisquemdécroit.Onfiniradoncparavoirq2
i>m.Dèslors,m,s’il n’estpaségalà1,estpre-
mier,puisquenon-divisibleparq1,q2,... ,qi−1,séquence quicontient touslesnombrespremiers
inférieursouégauxà⌊√m⌋.Danscesconditionsmestledernierfacteurdeladécomposition
den.
Question6.Écrireunenouvellefonctionfactoriser2(n)quiagitcommefactoriser,maisne
calculepasdetabledenombrespremiersetexploitelaseconderemarque ci-dessus.
II.Reconnaîtrelespuissances
Une écriture courantedeladécompositionenfacteurspremiersregroupelesfacteurségaux:
n=pα1
1pα2
2···pαk
k,p1<p2<···<pkpremiers,0<α1,0<α2, . . . , 0<αk
Lesαisontlesmultiplicitésden—enfaitlesmultiplicitésdesfacteurspremiersden.
Question7.ÉcrirelafonctioncalculerAlpha(n)(n≥2)quirangelesmultiplicitésdansun
tableauglobalalphaet renvoielenombred’entiersrangésdansalpha.
Onadmetquel’entiern(n≥2)s’écritcommelapuissance n=ab,sietseulementsibdivise
touteslesmutiplicitésden.
Question8.ÉcrirelafonctionestPuissance(n,b)(n≥2,b≥1)quirenvoie1si il existeun
entieratelquen=abet0sinon.
Question9.Ladécompositionenfacteurspremiersestuneopérationcoûteuse.Proposerune
techniquealternativepourdétectersiun entiernestun carréou pas.Aucun coden’estdemandé.