Concept

Méthode de factorisation de Fermat

vignette|Pierre de Fermat En arithmétique modulaire, la méthode de factorisation de Fermat est un algorithme de décomposition en produit de facteurs premiers d'un entier naturel. L'intuition est la suivante. Tout entier naturel impair N se décompose en la différence de deux carrés : N = a – b. Algébriquement, cette différence se factorise en (a + b)(a – b) et, si ni a + b ni a – b n'est égal à 1, alors ce sont des facteurs non triviaux de N. Il existe une telle représentation pour tout nombre impair composé. Si N = cd est une factorisation de N, alors Puisque N est impair, c et d le sont aussi et ces « moitiés » sont des nombres entiers. Notons qu'un multiple de 4 donne aussi une différence de deux carrés, en posant c et d comme nombres pairs. Dans sa forme la plus simple, la méthode de factorisation de Fermat peut être plus lente que la factorisation par essais de divisions. Néanmoins, la combinaison des deux méthodes est plus efficace qu'uniquement l'une ou l'autre. On essaie différentes valeurs de a, en espérant que a – N soit un carré b. On peut utiliser qu'un carré ne peut se terminer que par 0, 1, 4, 5, 6 ou 9 dans le système décimal. FactorFermat(N): // N doit être impair A ← arrondi(sqrt(N)) Bsq ← AA – N tant que Bsq n'est pas un carré: A ← A + 1 Bsq ← AA – N // ou de façon équivalente : Bsq ← Bsq + 2*A + 1 fin tant que retourner A – sqrt(Bsq) // ou A + sqrt(Bsq) Soit N un entier possédant plus d'une factorisation (N possède plus de deux facteurs). La méthode de Fermat donne la factorisation de N avec les plus petites valeurs de a et de b, c'est-à-dire que a + b est le plus petit facteur supérieur à la racine carrée de N. Donc, a – b = N/(a + b) est le plus grand facteur n'excédant pas la racine carrée de N. Si la méthode produit N = 1 × N, cela signifie que N est un nombre premier. Théorie de la complexité (informatique théorique) Pour N = cd, soit c le plus grand facteur plus petit que la racine carrée de N et soit a = (c + d)/2. Alors, le nombre d'itérations est approximativement Si N est premier (donc c = 1), l'algorithme fait O(N) itérations.

À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.

Graph Chatbot

Chattez avec Graph Search

Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.

AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.