Warning: Undefined array key "DOKU_PREFS" in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/common.php on line 2082
decomposition_en_facteurs_premiers [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


decomposition_en_facteurs_premiers

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
decomposition_en_facteurs_premiers [2008/03/16 08:55]
tyrtamos
decomposition_en_facteurs_premiers [2008/07/02 17:25]
tyrtamos
Ligne 13: Ligne 13:
 On utilise en plus une astuce pour gagner du temps: on commence par trouver tous les facteurs "2" (s'il y en a), ce qui permet après de n'essayer que les nombres impairs. Pour des valeurs de n importantes, on divise ainsi les essais par 2. On utilise en plus une astuce pour gagner du temps: on commence par trouver tous les facteurs "2" (s'il y en a), ce qui permet après de n'essayer que les nombres impairs. Pour des valeurs de n importantes, on divise ainsi les essais par 2.
  
-Les tentatives de division s'arrêtent à racine de n, parce que si on n'a pas trouvé de facteur avant, on n'en trouvera plus. C'est le calcul de cette racine qui nécessite l'importation du module math.+Les tentatives de division s'arrêtent à racine de n, parce que si on n'a pas trouvé de facteur avant, on n'en trouvera plus. Pour éviter l'utilisation de sqrt(), on fait le test sur i*i>n.
  
 Voici le code: Voici le code:
Ligne 20: Ligne 20:
 #!/usr/bin/python #!/usr/bin/python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
- 
-from math import * 
  
 def facteurs(n): def facteurs(n):
Ligne 37: Ligne 35:
             break             break
     # recherche des facteurs 1er >2     # recherche des facteurs 1er >2
-    r=sqrt(n)+1 
     i=3     i=3
     while (i<=n):     while (i<=n):
-        if i>r:+        if i*i>n:
             f.append(n)             f.append(n)
             break             break
Ligne 47: Ligne 44:
             f.append(i)             f.append(i)
             n=x[0]             n=x[0]
-            r=sqrt(n)+1 
         else:         else:
             i+=2             i+=2
Ligne 89: Ligne 85:
 \\ \\
 Vous pouvez tester la fonction facteurs(n) avec la Calculext ici: [[http://calculext.jpvweb.com]], mais soyez raisonnable: avec un nombre trop grand, vous risquez de dépasser le temps maxi de calcul autorisé sur le serveur. Vous pouvez tester la fonction facteurs(n) avec la Calculext ici: [[http://calculext.jpvweb.com]], mais soyez raisonnable: avec un nombre trop grand, vous risquez de dépasser le temps maxi de calcul autorisé sur le serveur.
 +<html> 
 +<head> 
 +<style type="text/css"> 
 +<!-- 
 +body {background-image:url(fondcorps.jpg);
 +--> 
 +</style> 
 +</head> 
 +<body> 
 +</body> 
 +</html>
decomposition_en_facteurs_premiers.txt · Dernière modification: 2009/01/09 12:54 de tyrtamos