Section 1

1.2 Divisors et factorisation

Comment pouvons-nous trouver l'ensemble des diviseurs positifs pour un entier? Si vous arrive d'avoir un ordinateur à votre disposition, vous pouvez simplement utiliser l'applet Java de la section précédente. Cependant, il est important de comprendre comment fonctionne cette applet, surtout si vous écartez jamais plus de quelques pieds de votre ordinateur.

Le procédé le plus élémentaire pour le calcul de division des diviseurs est d'essai exhaustive. Si nous voulons trouver les diviseurs positifs pour un entier n. nous prenons juste les entiers 1, 2, 3. n. diviser par n chacun, et ceux qui divisent de façon égale jusqu'à rendre l'ensemble des diviseurs positifs pour n. Cette méthode fonctionne bien et est assez simple, mais il est également tout à fait inefficace.

Une façon d'améliorer le procédé ci-dessus consiste à appliquer l'observation suivante: si m est un diviseur de n. alors k = n / m est un diviseur de n. parce que mk = n. Ainsi, les diviseurs positifs peuvent être organisés en paires de la forme (m. N / m), où m

Votre navigateur ne supporte pas java.

Pour cette valeur de n. nous avons les paires (1, 100), (2, 50), (4, 25), et (5, 20), et parce que 100 est un carré parfait, le seul diviseur = 10. On notera que pour chaque paire de positif diviseurs, le diviseur plus petit est inférieur. Ceci est également le cas en général: si m | n et m

Votre navigateur ne supporte pas java.

Diviser chacun 1, 2, 3. 12 152 révèle dans les diviseurs 1, 2, 4 et 8. Les diviseurs positifs restants 152 sont alors données par

Votre navigateur ne supporte pas java.

Combien de temps pouvons-nous économiser en utilisant la deuxième méthode au lieu de la première? Nous pouvons mesurer combien de temps il faut chaque méthode pour calculer les diviseurs de 10000 à l'aide de l'applet ci-dessous. « Essai n » trouve en utilisant diviseurs division d'essai jusqu'à n. et « sqrt d'essai (n) » trouve en utilisant diviseurs division d'essai jusqu'à:

Votre navigateur ne supporte pas java.

"Sqrt d'essai (n)" est nettement plus rapide. La raison de la différence de vitesse est claire: « Essai n » a tester n entiers possibles, tandis que « sqrt d'essai (n) » vérifie uniquement des nombres entiers. Donc, le temps d'exécution pour « Trial n » devrait être à peu près proportionnelle à n alors que le temps d'exécution pour « sqrt Trial (n) » devrait être à peu près proportionnelle à.

Il y a d'autres choses qui se passent à l'intérieur de l'ordinateur, donc il ne faut pas attendre des estimations de synchronisation comme celui-ci pour être exact. Cependant, ils peuvent fournir des estimations de bonne Ballpark.

Que pensez-vous qui va arriver à temps en cours d'exécution pour chaque méthode si l'on multiplie par 10 n? Ensuite, vérifiez le résultat en changeant 10000 dans l'applet ci-dessus.

Maintenant, essayez de répondre à la question suivante.

exercice 1

Un problème lié à la recherche de l'ensemble de diviseurs pour un nombre entier qui est de trouver la factorisation prime-puissance d'un nombre entier. En effet, nous le verrons plus loin dans le chapitre comment utiliser la factorisation d'un entier pour calculer facilement tous les diviseurs pour l'entier.

Plusieurs méthodes ont été mises au point pour trouver la factorisation d'un entier. La méthode que nous allons décrire ici est assez simple, et emprunte des idées utilisées ci-dessus pour trouver diviseurs; qui est, il utilise la division d'essai.

Rappelons que trouver le factorisation d'un entier nous oblige à exprimer un entier n comme

La procédure de base pour trouver la factorisation est la suivante:

  1. Commencez par le premier premier, p = 2, et vérifiez si 2 | n. Si oui, remplacez n par n / 2. Répétez jusqu'à ce que 2 ne divisera plus en uniforme, en gardant une trace du nombre de facteurs de 2.
  • Répétez l'étape ci-dessus avec le prochain premier, p = 3, puis avec le prochain premier, p = 5, et ainsi de suite. Comme ci-dessus, garder une trace du nombre de facteurs le long du chemin.

  • Arrêtez-vous lorsque vous êtes parti avec 1 ou avec un numéro que vous connaissez est premier.

    À titre d'exemple, que nous trouvions l'factorisation prime de puissance pour n = 571450. Nous commençons en divisant par 2 n:

    Votre navigateur ne supporte pas java.

    Bien qu'il soit assez évident de la sortie, nous allons voir si 2 divisera uniformément dans le quotient ci-dessus:

    Votre navigateur ne supporte pas java.

    Étant donné que nous obtenons une sortie pour non-entier, nous savons que 2 ne divisera pas à nouveau. Ainsi, nous savons que 2 1 est la puissance correcte de 2 dans la factorisation. Maintenant, nous allons passer au premier 3:

    Votre navigateur ne supporte pas java.

    Cela ne se divise pas en uniforme, donc 3 ne figure pas dans la factorisation. Essayons 5:

    Votre navigateur ne supporte pas java.

    Ainsi 5 divise en uniforme, et comme on peut le voir à la sortie, 5 divisera en uniforme à nouveau:

    Votre navigateur ne supporte pas java.

    Voilà pour les 5 s. Par conséquent, nous savons que 5 2 est la puissance correcte de 5 dans la factorisation. Voici le test pour le premier 7:

    Votre navigateur ne supporte pas java.

    Pas de chance. Voici le premier 11:

    Votre navigateur ne supporte pas java.

    La poursuite de cette manière, nous constatons que 1039 est divisible par 11, 13, 17, 19, 23, 29 ou 31. Nous savons déjà que 1039 est divisible par 2, 3 ou 5 parce que nous avons divisé l'écart de tous les facteurs de 2, 3 et 5 déjà. Si nous sommes intelligents, nous pouvons arrêter maintenant depuis est à peu près.

    Votre navigateur ne supporte pas java.

    Parce que 1039 n'a pas de choix diviseurs inférieur ou égal, il doit être premier. Ainsi, nous avons maintenant l'ensemble de factorisation:

    571450 = 2 · 1 2 · 5 · 11 1 1039

    La méthode décrite ci-dessus et illustré va bien travailler pour les entiers assez petites et peut être utilisé pour tenir compte des chiffres sur une calculatrice à la main. Cependant, cette technique est inefficace pour les entiers plus grands, et des méthodes plus avancées doit être utilisé dans ces cas. Mais même les techniques d'affacturage plus sophistiqués ont leurs limites. Le problème général de la factorisation de grands nombres entiers (plus de 200 chiffres!) Est difficile, et est actuellement un domaine de recherche mathématique intense. Le problème est non seulement intéressant en soi, mais a aussi quelques applications importantes. Nous allons voir comment l'affacturage est lié à la cryptographie dans un chapitre ultérieur.

    Articles Liés