C_dur a écrit:J'ai découvert le project Euler il y a peu et j'essaie de résoudre les problèmes en Python et en C (juste pour le fun, je ne suis pas ingénieur ni féru de math... mais cela m'occupe l'esprit)
Je propose la méthode suivante.
Etant donné que le nombre de diviseurs de
si les
sont premiers est égal à
, si p est le plus petit nombre premier entrant dans la décomposition en facteurs premiers de N et si
, k premier avec p, alors le nombre de diviseurs de N est le produit du nombre de diviseurs de k et du nombre de disiseurs de
(ce dernier étant égal à
).
Je décris donc la liste des entiers n, de 2 à
, dans cet ordre, en définissant à la main "(nombre des diviseurs de 2)=2". Pour chaque n, je cherche son plus petit facteur premier p ; si n est premier, je note que son nombre de diviseurs est 2 ; sinon je divise n autant de fois que je peux par p pour connaitre l'exposant
de p dans la décomposition et je dis que le nombre de diviseurs de n est
fois le nombre de diviseurs de
qui est forcément déjà calculé puisque j'ai décrit la liste dans l'ordre croissant et que