Algorithme de factorisation en nombre premier

Algorithme de décomposition en produit de facteurs premiers

En mathématiques, dans la branche de l'arithmétique modulaire, un algorithme de décomposition en produit de facteurs premiers est un algorithme (un processus pas à pas) par lequel un entier est « décomposé » en un produit de facteurs qui sont des nombres premiers. Le théorème fondamental de l'arithmétique assure que cette décomposition est unique.

Sommaire

Un simple algorithme de factorisation

Description

Nous pouvons décrire un algorithme récursif pour accomplir de telles factorisations : soit un nombre donné n

  • si n est premier, alors la factorisation s'arrête ici.
  • si n est composé, diviser n par le premier nombre premier p1. S'il est divisé sans reste, reprendre avec la valeur n/p1. Ajouter p1 à la liste des facteurs obtenus pour n/p1 pour avoir une factorisation pour n. S'il est divisé avec reste, diviser n par le nombre premier suivant p2, et ainsi de suite.

Notez que nous avons besoin de tester seulement les nombres premiers pi tels que pi ≤ √n.

Exemple

Supposons que nous désirons factoriser 9 438.

9 438/2 = 4 719, sans reste donc 2 est un facteur.

Nous répétons l'algorithme avec 4 719.

4 719/2 = 2 359.5, donc 2 n'est pas un facteur. 4 719/3 = 1 573, donc 3 est un facteur.

Le premier nombre premier par lequel 1 573 est divisible est 11.

1 573/11 = 143. De manière similaire, le nombre premier suivant qui divise 143 est 11. 143/11 = 13. 13 est lui-même premier.

Donc, en récapitulant, nous avons 9 438 = 2×3×11×11×13 = 2×3×112×13

Voici l'exemple en python :

import math,sys
def factorize(n):
    def isPrime(n):
        return not [x for x in xrange(2,int(math.sqrt(n)) + 1)
                    if n%x == 0]
    primes = []
    candidates = xrange(2,n+1)
    candidate = 2
    while not primes and candidate in candidates:
        if n%candidate == 0 and isPrime(candidate):
            primes.append(candidate)
            primes = primes + factorize(n/candidate)
        candidate += 1            
    return primes
print factorize(int(sys.argv[1]))

Sortie :

python factorize.py 9438
[2, 3, 11, 11, 13]

Complexité

L'algorithme décrit ci-dessus marche bien pour les petits n, mais devient impraticable dès que n devient plus grand. Par exemple, pour un nombre de 18 chiffres décimaux (ou 60 chiffres bits), tous les nombres premiers inférieurs à 1 000 000 000 doivent être testés, ce qui devient long, même pour un ordinateur. En ajoutant deux chiffres décimaux au nombre original, on multiplie le calcul par 10.

La difficulté de la factorisation (complexité en temps large) en fait une base idéale pour la cryptologie moderne.

Voir aussi : Théorème d'Euler, Décomposition en produit de facteurs premiers, Essais de divisions

Lien externe

  • Portail des mathématiques Portail des mathématiques
Ce document provient de « Algorithme de d%C3%A9composition en produit de facteurs premiers ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Algorithme de factorisation en nombre premier de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • Algorithme de factorisation de nombre premier — Décomposition en produit de facteurs premiers En mathématiques et plus précisément en arithmétique modulaire, la décomposition en produit de facteurs premiers (aussi connue comme la factorisation entière en nombres premiers) est le problème… …   Wikipédia en Français

  • Algorithme De Décomposition En Produit De Facteurs Premiers — En mathématiques, dans la branche de l arithmétique modulaire, un algorithme de décomposition en produit de facteurs premiers est un algorithme (un processus pas à pas) par lequel un entier est « décomposé » en un produit de facteurs… …   Wikipédia en Français

  • Algorithme de decomposition en produit de facteurs premiers — Algorithme de décomposition en produit de facteurs premiers En mathématiques, dans la branche de l arithmétique modulaire, un algorithme de décomposition en produit de facteurs premiers est un algorithme (un processus pas à pas) par lequel un… …   Wikipédia en Français

  • Algorithme de décomposition en produit de facteurs premiers — En mathématiques, dans la branche de l arithmétique modulaire, un algorithme de décomposition en produit de facteurs premiers est un algorithme (un processus pas à pas) par lequel un entier est « décomposé » en un produit de facteurs… …   Wikipédia en Français

  • Algorithme De Factorisation Par Crible Sur Les Corps De Nombres Généralisé — En mathématiques, le crible général de corps de nombres est l algorithme, fondé sur l arithmétique modulaire, pour la décomposition en produit de facteurs premiers le plus efficace connu. Il utilise étapes pour factoriser un nombre entier n (voir …   Wikipédia en Français

  • Algorithme de factorisation par crible sur les corps de nombres generalise — Algorithme de factorisation par crible sur les corps de nombres généralisé En mathématiques, le crible général de corps de nombres est l algorithme, fondé sur l arithmétique modulaire, pour la décomposition en produit de facteurs premiers le plus …   Wikipédia en Français

  • Algorithme de factorisation par crible sur les corps de nombres généralisé — En mathématiques, le crible général de corps de nombres, appelé aussi crible algébrique est l algorithme, fondé sur l arithmétique modulaire, pour la décomposition en produit de facteurs premiers le plus efficace des algorithmes classiques. Il… …   Wikipédia en Français

  • Factorisation En Courbe Elliptique De Lenstra — La factorisation de Lenstra (par les courbes elliptiques) est un algorithme probabiliste rapide pour la décomposition en produit de facteurs premiers qui emploie les courbes elliptiques. Cette méthode fut le meilleur algorithme pour la… …   Wikipédia en Français

  • Factorisation en courbe elliptique de lenstra — La factorisation de Lenstra (par les courbes elliptiques) est un algorithme probabiliste rapide pour la décomposition en produit de facteurs premiers qui emploie les courbes elliptiques. Cette méthode fut le meilleur algorithme pour la… …   Wikipédia en Français

  • Factorisation en nombres premiers — Décomposition en produit de facteurs premiers En mathématiques et plus précisément en arithmétique modulaire, la décomposition en produit de facteurs premiers (aussi connue comme la factorisation entière en nombres premiers) est le problème… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”