Question en deux parties :
- En essayant de déterminer le plus grand facteur premier de 600851475143, j'ai trouvé ce programme en ligne qui semble fonctionner. Le problème est que j'ai du mal à comprendre comment il fonctionne exactement, bien que je comprenne les bases de ce que fait le programme. Aussi, j'aimerais que vous puissiez m'éclairer sur toute méthode que vous connaissez pour trouver des facteurs premiers, peut-être sans tester chaque nombre, et sur la manière dont votre méthode fonctionne.
Voici le code que j'ai trouvé en ligne pour la factorisation des nombres premiers. [NOTE : Ce code est incorrect. Voir la réponse de Stefan ci-dessous pour un meilleur code]. :
n = 600851475143
i = 2
while i * i < n:
while n % i == 0:
n = n / i
i = i + 1
print(n)
#takes about ~0.01secs
-
Pourquoi ce code est-il tellement plus rapide que ce code, qui sert juste à tester la vitesse et n'a pas d'autre but réel que celui-là ?
i = 1 while i < 100: i += 1
takes about ~3secs