Vérifier si un nombre est premier

Les nombres premiers sont des nombres qui ne sont divisibles que par eux-mêmes et sont appelés 1 – autres nombres composé Nombres. Lorsqu`il s`agit de tester si un nombre est premier, plusieurs options s`offrent à vous. Certaines de ces méthodes sont relativement simples mais certainement pas pratiques pour de plus grands nombres. D`autres tests souvent utilisés sont en fait des algorithmes complets basés sur un probabilité qui classent parfois à tort un nombre comme premier. Continuez à lire à l`étape 1 pour apprendre à vous tester si vous avez affaire à un nombre premier.

Pas

Méthode 1 sur 4: Essayez en divisant

Essayer en divisant est de loin le moyen le plus simple de tester un nombre. Pour les petits nombres, c`est généralement aussi le moyen le plus rapide. Le test repose sur la définition d`un nombre premier : un nombre est premier s`il n`est divisible que par lui-même et 1.

Image intitulée Vérifier si un nombre est premier Étape 1
1. Coupler m est le nombre que vous voulez tester. Divisez le nombre n par tous les entiers divisibles possibles. Pour des nombres plus grands tels que n=101, il est extrêmement peu pratique de diviser par chaque entier possible inférieur à n. Heureusement, il existe plusieurs astuces pour réduire le nombre de facteurs à tester.
Image intitulée Vérifier si un nombre est premier Étape 2
2. Déterminer si m est même. Tous les nombres pairs sont entièrement divisibles par 2. Par conséquent, si n est pair, vous pouvez dire que n est un nombre composé (et donc pas un nombre premier). Pour déterminer rapidement si un nombre est pair, il suffit de faire attention au dernier chiffre. Si le dernier chiffre est 2, 4, 6, 8 ou 0, alors le nombre est pair et non premier.
  • La seule exception à cette règle est le nombre 2 lui-même, qui, parce qu`il est divisible par lui-même et 1, est également premier. 2 est le seul nombre premier pair.
  • Image intitulée Vérifiez si un nombre est premier Étape 3
    3. Partie m par n`importe quel nombre entre 2 et n-1. Puisqu`un nombre premier n`a pas d`autre facteur que lui-même et 1 et parce que les facteurs d`entiers sont inférieurs à leur produit, vérifier la divisibilité d`un entier inférieur à n et supérieur à 2 déterminera si n est premier. On commence après 2 car les nombres pairs (multiples de 2) ne peuvent pas être des nombres premiers. C`est loin d`être un moyen efficace de tester, comme vous le verrez ci-dessous.
  • Par exemple, si nous voulions utiliser cette méthode pour tester si 11 est premier ou non, nous devrions diviser 11 par 3, 4, 5, 6, 7, 8, 9 et 10, en cherchant à chaque fois une réponse entière sans reste. Étant donné qu`aucun de ces nombres ne correspond complètement à 11, nous pouvons dire que 11 est un premier est.
  • Image intitulée Vérifier si un nombre est premier Étape 4
    4. Pour gagner du temps, testez uniquement jusqu`à sqrt(m), arrondi. Tester un nombre n en vérifiant tous les nombres entre 2 et n-1 peut vite devenir très chronophage. Par exemple, si nous voulions vérifier si 103 est premier en utilisant cette méthode, nous devrions diviser par 3, 4, 5, 6, 7 ... etc., jusqu`au 102! Heureusement il n`est pas nécessaire de tester comme ça. En pratique il suffit de tester par les facteurs compris entre 2 et la racine carrée de n. Si la racine carrée de n n`est pas un nombre, arrondissez-la à l`entier le plus proche et testez à ce nombre. Voir ci-dessous pour une explication :
  • Examinons les facteurs de 100. 100 = 1 × 100, 2 × 50, 4 × 25, 5 × 20, 10 × 10, 20 × 5, 25 × 4, 50 × 2 et 100 × 1. Notez qu`après 10 × 10, les facteurs sont les mêmes que pour 10 × 10, seulement inversés. En général, nous pouvons ignorer les facteurs de n supérieurs à sqrt(n) car ils sont simplement une continuation de facteurs inférieurs à sqrt(n).
  • Essayons un exemple. Si n = 37, alors nous n`avons pas besoin de tester tous les nombres de 3 à 36 pour déterminer si n est premier. Au lieu de cela, nous avons seulement besoin de regarder les nombres entre 2 et sqrt (37) (arrondi au supérieur).
  • carré (37) = 6.08 – nous allons arrondir à 7.
  • 37 n`est pas entièrement divisible par 3, 4, 5, 6 et 7 et nous pouvons donc dire avec certitude qu`il s`agit d`un nombre premier est.
  • Image intitulée Vérifier si un nombre est premier Étape 5
    5. Pour gagner encore plus de temps, nous n`utilisons que des facteurs premiers. Il est possible de rendre le processus de test par division encore plus court en n`incluant pas les facteurs qui ne sont pas des nombres premiers. Par définition, tout nombre composé peut être exprimé comme le produit de deux ou plusieurs nombres premiers. Il n`est donc pas nécessaire de diviser le nombre n par un nombre composé - cela équivaut à diviser plusieurs fois par des nombres premiers. Ainsi, nous pouvons réduire davantage la liste des facteurs possibles aux seuls nombres premiers inférieurs à sqrt(n).
  • Cela signifie que tous les facteurs pairs, ainsi que ceux qui sont des multiples de nombres premiers, peuvent être ignorés.
  • Par exemple, essayons de déterminer si 103 est premier ou non. La racine carrée de 103 est 11 (arrondie au supérieur). Les nombres premiers entre 2 et 11 sont 3, 5, 7 et 11. 4, 6, 8 et 10 sont pairs et 9 est un multiple de 3, un nombre premier, nous pouvons donc sauter celui-ci. En faisant cela, nous avons réduit notre liste de facteurs possibles à seulement 4 nombres!
  • 103 n`est pas entièrement divisible par 3, 5, 7 ou 11, nous savons donc maintenant que 103 est un nombre premier est.
  • Méthode 2 sur 4: Utilisation du petit théorème de Fermat

    En 1640, le mathématicien français Pierre de Fermat a posé pour la première fois un théorème (qui porte maintenant son nom) qui peut être très utile pour déterminer si un nombre est premier ou non. Techniquement, le test de Fermat est destiné à vérifier si un nombre est composé plutôt que premier. C`est parce que le test avec "certitude absolue" peut montrer qu`un nombre est composé, mais seulement un "probabilité" si un nombre est premier. Le petit théorème de Fermat est utile dans les situations où essayer de diviser par n`est pas pratique et lorsqu`une liste de nombres est disponible qui sont des exceptions au théorème.

    Image intitulée Vérifiez si un nombre est premier Étape 6
    1. Supposer m le numéro est pour tester. Vous utilisez ce test pour déterminer si un nombre donné n est premier. Mais comme mentionné ci-dessus, ce théorème peut parfois caractériser à tort certains composés comme nombre premier. Il est important d`en tenir compte et de vérifier votre réponse, qui sera expliquée plus tard.
    Image intitulée Vérifiez si un nombre est premier Étape 7
    2. Choisissez un nombre entier une entre 2 et m-1 (inclus). L`entier exact que vous choisissez n`est pas important. Étant donné que les paramètres pour a incluent 2 et n-1, vous pouvez également utiliser ces.
  • Un exemple : 100 est-il un nombre premier ou non ?. Supposons que nous prenons 3 comme valeur de test - c`est entre 2 et n-1, donc ça suffit.
  • Image intitulée Vérifiez si un nombre est premier Étape 8
    3. calculer une (mode m). L`élaboration de cette expression nécessite une certaine connaissance d`un système mathématique appelé mathématiques modulaires. En mathématiques modulaires, les nombres reviennent à zéro lorsqu`ils atteignent une certaine valeur, connue sous le nom de module. Vous pouvez penser à cela comme à une horloge : finalement l`aiguille de l`horloge reviendra à 1h après 12h, pas à 1h. Le module est noté (mod m). Donc, à cette étape, vous calculez avec un module de n.
  • Une autre méthode consiste à calculer a, puis à diviser par n, puis à utiliser le reste comme réponse. Les calculatrices spécialisées avec une fonction de module peuvent être très utiles lors de la division de grands nombres, car elles peuvent calculer directement le reste d`une division.
  • En utilisant une telle calculatrice dans notre exemple, nous pouvons voir que 3/100 a un reste de 1. Donc, 3 (mod 100) est 1.
  • Image intitulée Vérifiez si un nombre est premier Étape 9
    4. Si nous calculons cela à la main, nous utilisons l`exposant comme notation courte. Si vous n`avez pas de calculatrice avec une fonction de module, utilisez la notation exponentielle pour faciliter la procédure de détermination du reste. Voir ci-dessous:
  • Dans notre exemple on calcule 3 avec un module de 100. 3 est un très, très grand nombre - 515 377 520 732 011 331 036 461 129 765 621 272 702 107 522 001 - si grand qu`il devient très difficile de travailler avec. Plutôt que d`utiliser la réponse à 48 chiffres pour 3, nous ferions mieux de l`écrire comme un exposant, donc (((((((3)*3))))*3)). Rappelez-vous que prendre l`exposant d`un exposant donne l`effet de multiplier les exposants ((x) = x).
  • Maintenant, nous pouvons déterminer le reste. Commencez à résoudre pour (((((((3)*3)))))*3)) à l`intérieur des parenthèses et travaillez votre chemin, en divisant chaque étape par 100. Une fois que nous aurons trouvé le reste, nous l`utiliserons pour l`étape suivante plutôt que comme réponse réelle. Voir ci-dessous:
  • (((((((9)*3))))*3)) - 9/100 n`a pas de reste, nous pouvons donc continuer.
  • ((((((27))))*3)) - 27/100 n`a pas de reste, nous pouvons donc continuer.
  • (((((729)))*3)) - 729/100 = 7 R 29. Notre reste est de 29. Nous passons à l`étape suivante, pas 729.
  • ((((29=841))*3)) - 841/100 = 8 R 41. Nous utiliserons à nouveau notre reste 41 à l`étape suivante.
  • (((41 = 1681)*3)) - 1681/100 = 16 R 81. Nous utiliserons notre reste 81 à l`étape suivante.
  • ((81*3 = 243)) - 243/100 = 2 R 43. Nous utiliserons notre reste 43 à l`étape suivante.
  • (43 = 1849) - 1849/100 = 18 R 49. Nous utiliserons notre reste 49 à l`étape suivante.
  • 49 = 2401 - 2401/100 = 24 R 1. notre reste final est 1. En d`autres termes, 3 (mod 100) = 1. Notez qu`il s`agit de la même réponse que nous avons calculée à l`étape précédente!
  • Image intitulée Vérifiez si un nombre est premier Étape 10
    5. Vérifier si une (mode m) = une (mode m). Sinon, alors n est composé. Si vrai, alors n est probablement, (mais pas sûr) un nombre premier. Répéter le test avec différentes valeurs pour a peut rendre le résultat plus certain, mais il existe de rares nombres composés qui satisfont le théorème de Fermat pour tout valeurs d`un. On les appelle les nombres de Carmichael - le plus petit de ces nombres est 561.
  • Dans notre exemple, 3 (mod 100) = 1 et 3 (mod 100) = 3. 1 3, on peut donc dire que 100 est un nombre composé.
  • 6. Utilisez les numéros Carmichael pour être sûr de votre résultat. Savoir quels nombres satisfont à la séquence de Carmichael avant de continuer peut vous éviter bien des maux de tête quant à savoir si un nombre est premier ou non. En général, les nombres de Carmichael sont le produit de nombres premiers individuels, où pour tous les nombres premiers, il est établi que si p est un diviseur de n, alors p-1 est également un diviseur de n-1. La liste en ligne des nombres de Carmichael peut être très utile pour déterminer si un nombre est premier en utilisant le petit théorème de Fermat.

    Méthode 3 sur 4: Utilisation du test Miller-Rabin

    Le test de Miller-Rabin fonctionne de la même manière que le petit théorème de Fermat, mais traite mieux les nombres anormaux tels que les nombres de Carmichael.

    Image intitulée Vérifiez si un nombre est premier Étape 12
    1. Coupler m est un nombre impair dont nous voulons tester la primalité. Comme dans les méthodes indiquées ci-dessus, n est la variable dont on veut déterminer la primalité de.
    Image intitulée Vérifiez si un nombre est premier Étape 13
    2. Pression m-1 off sous la forme 2 × par lequel est impair. Le nombre n est premier s`il est impair. Donc n - 1 doit être pair. Puisque n - 1 est pair, il peut être écrit comme une puissance de 2 fois un nombre impair . Donc, 4 = 2 × 1 ; 80 = 2 × 5 ; et ainsi de suite.
  • Supposons que nous voulions déterminer si n = 321 est un nombre premier. 321 - 1 = 320, que l`on peut exprimer par 2×5.
  • Dans ce cas n = 321 est un nombre approprié. La détermination de n – 1 pour n = 371 peut nécessiter une grande valeur pour d, ce qui rend l`ensemble du processus plus difficile à un stade ultérieur. 371 - 1 = 370 = 2 × 185
  • Image intitulée Vérifiez si un nombre est premier Étape 14
    3. Choisissez n`importe quel nombre une entre 2 et m-1. Le nombre exact que vous choisissez n`a pas d`importance - juste qu`il doit être inférieur à n et supérieur à 1.
  • Dans notre exemple avec n = 321, nous choisissons a = 100.
  • Image intitulée Vérifiez si un nombre est premier Étape 15
    4. calculer une (mode m). si une = 1 ou -1 (mod m), puis résistem le test de Miller-Rabin et est Probablement un nombre premier. Comme avec le petit théorème de Fermat, ce test ne peut pas déterminer la primalité d`un nombre avec une certitude absolue, mais nécessite des tests supplémentaires pour le faire.
  • Dans notre exemple avec n = 321, a (mod n) = 100 (mod 321). 100 = 10 000 000 000 (mod 321) = 313. Nous utilisons une calculatrice spéciale, ou la méthode abrégée avec un exposant comme décrit précédemment, pour trouver le reste de 100/321.
  • Comme on n`a pas obtenu 1 ou -1, on ne peut pas dire avec certitude que n est premier. Mais il y a plus que nous devons faire - lisez la suite.
  • Image intitulée Vérifiez si un nombre est premier Étape 16
    5. Puisque le résultat n`est pas égal à 1 ou -1, calculezune, une,... et ainsi de suite jusqu`à une. Calculer a à la puissance d fois , jusqu`à 2. Si l`un d`eux est égal à 1 ou -1 (mod m), puis résiste m le test de Miller-Rabin et est probablement premier. Une fois que vous avez déterminé que n réussit le test, vérifiez votre réponse (voir l`étape ci-dessous). Si n ne réussit aucun de ces tests, alors c`est un composé numéro.
  • Pour rappel, dans notre exemple, la valeur de a est égale à 100, la valeur de s est 6, et de d5. Nous procéderons aux tests comme indiqué ci-dessous :
  • 100 = 1×10.
  • 1×10 (mod 321) = 64. 64 ` 1 ou -1. Rester calme.
  • 100 = 1×10.
  • 1×10 (mod 321) = 244. 244 ?? 1 ou -1.
  • À ce stade, nous pouvons arrêter. s - 1 = 6 - 1 = 5. Nous avons maintenant atteint 4d = 2, et il n`y a pas de puissances de 2 fois d sous 5d. Comme aucun de nos calculs n`a donné comme réponse 1 ou -1, on peut dire que n = 321 a composé le numéro est.
  • Image intitulée Vérifiez si un nombre est premier Étape 17
    6. si m répond au test de Miller-Rabin, puis répétez pour les autres valeurs de une. Si vous avez trouvé que la valeur de n peut bien être première, essayez à nouveau avec une valeur aléatoire différente pour a pour confirmer le résultat du test. Si n est réellement premier, alors cela vaudra pour n`importe quelle valeur d`un. Si n est un nombre composé, il échouera pour les trois quarts des valeurs d`un. Cela vous donne plus de certitude qu`avec le petit théorème de Fermat, dans lequel certains nombres composés (les nombres de Carmichael) réussissent le test pour chaque valeur d`un.

    Méthode 4 sur 4: Utilisation du théorème des restes chinois

    Image intitulée Vérifiez si un nombre est premier Étape 18
    1. Choisissez deux nombres. L`un des nombres n`est pas premier et le second est le nombre testé pour la primalité.
    • "essai numéro1" = 35
    • Test numéro2 = 97
    Image intitulée Vérifiez si un nombre est premier Étape 19
    2. Choisissez deux points de données supérieurs à zéro et inférieurs à TestNumber1, respectivement TestNumber2. Ils ne peuvent pas être les mêmes.
  • Données1 = 1
  • Données2 = 2
  • Image intitulée Vérifiez si un nombre est premier Étape 20
    3. Calculer le MMI (Mathematical Multiplicative Inverse) pour TestNumber1 et TestNumber2
  • Calculer le MMI
  • MMI1 = Test Number2 ^ -1 Mod Test Number1
  • MMI2 = Test Number1 ^ -1 Mod Test Number2
  • Uniquement pour les nombres premiers (il y aura un résultat pour les non-premiers, mais ce n`est pas le MMI) :
  • MMI1 = (TestNumber2 ^ (TestNumber1-2)) %TestNumber1
  • MMI2 = (Numéro de test1 ^ (Numéro de test-2)) % Numéro de test2
  • Alors:
  • MMI1 = (97^33) %35
  • MMI2 = (35^95) %97
  • Image intitulée Vérifiez si un nombre est premier Étape 21
    4. Créer une table binaire pour chaque MMI jusqu`au Log2 du module
  • Pour le MMI1
  • F(1) = Test Numéro2 % Test Numéro1 = 97 % 35 = 27
  • F(2) = F(1) * F(1) % Test Numéro1 = 27 * 27 % 35 = 29
  • F(4) = F(2) * F(2) % Test Numéro1 = 29 * 29 % 35 = 1
  • F(8) = F(4) * F(4) % Testnumber1 = 1 * 1 % 35 = 1
  • F(16) =F(8) * F(8) % Numéro de test1 = 1 * 1 % 35 = 1
  • F(32) = F(16) * F(16) % Numéro de test1 = 1 * 1 % 35 = 1
  • Calculer le logarithme binaire de Testnumber1 - 2
  • 35 -2 = 33 (10001) base 2
  • MMI1 = F(33) = F(32) * F(1) mod 35
  • MMI1 = F(33) = 1 * 27 Mod 35
  • MMI1 = 27
  • Pour MMI2
  • F(1) = Test Numéro1 % Test Numéro2 = 35 % 97 = 35
  • F(2) = F(1) * F(1) % Test Number2 = 35 * 35 mod 97 = 61
  • F(4) = F(2) * F(2) % Test Number2 = 61 * 61 mod 97 = 35
  • F(8)= F(4) * F(4) % Test Number2 = 35 * 35 mod 97 = 61
  • F(16) = F(8) * F(8) % Test Number2 = 61 * 61 mod 97 = 35
  • F(32)= F(16) * F(16) % Test Number2 = 35 * 35 mod 97 = 61
  • F(64)= F(32) * F(32) % Test Number2 = 61 * 61 mod 97 = 35
  • F(128) = F(64) * F(64) % Test Number2 = 35 * 35 mod 97 = 61
  • Calculer le logarithme binaire de TestNumber2 - 2
  • 97 - 2 = 95 = (1011111) base 2
  • MMI2 = (((((F(64) * F(16) % 97) * F(8) % 97) * F(4) % 97) * F(2) % 97) * F(1) % 97 )
  • MMI2 = ((((((35 * 35) %97) * 61) % 97) * 35 % 97) * 61 % 97) * 35 % 97)
  • MMI2 = 61
  • Image intitulée Vérifiez si un nombre est premier Étape 22
    5. Calculer (Data1 * TestNumber2 * MMI1 + Data2 *TestNumber1 * MMI2) % (TestNumber1 * TestNumber)
  • Réponse = (1 * 97 * 27 + 2 * 35 * 61) % (97 * 35)
  • Réponse = (2619 + 4270) % 3395
  • Réponse = 99
  • Image intitulée Vérifiez si un nombre est premier Étape 23
    6. Vérifier si "essai numéro1" n`est pas premier 1
  • Calculer (Réponse - Données1) % Test Number1
  • 99 -1 % 35 = 28
  • Puisque 28 est supérieur à 0, 35 n`est pas premier
  • Image intitulée Vérifiez si un nombre est premier Étape 24
    sept. Vérifiez si TestNumber2 est un nombre premier
  • Calculer (Réponse - Données2) % Test Number2
  • 99 - 2% 97 = 0
  • Puisque 0 est égal à 0, 97 est un potentiel premier
  • Image intitulée Vérifiez si un nombre est premier Étape 25
    8. Répétez les étapes 1 à 7 au moins deux fois de plus.
  • Si l`étape 7 est égale à 0 :
  • Utiliser un autre "essai numéro1" si TestNumber1 n`est pas premier.
  • Utilisez un autre TestNumber1 où un TestNumber1 est en fait un nombre premier.Dans ce cas, les étapes 6 et 7 sont égales à 0.
  • Utiliser des points de données différents pour data1 et data2.
  • Si l`étape 7 est toujours égale à 0, alors la probabilité que nombre2 soit premier est très élevée.
  • Les étapes 1 à 7 sont connues pour être incorrectes dans certains cas lorsque le premier nombre n`est pas premier et le second est un facteur premier du nombre non premier "essai numéro1".Cela fonctionne dans tous les scénarios où les deux nombres sont des nombres premiers.
  • La raison pour laquelle les étapes 1 à 7 sont répétées est qu`il existe quelques scénarios où, même si TestNumber1 n`est pas premier et TestNumber2 n`est pas premier, l`un ou l`autre des nombres de l`étape 7 est toujours zéro.Ces conditions sont rares.En changeant TestNumber1 en un autre nombre non premier, si TestNumber2 n`est pas premier, TestNumber2 ne sera plus égal à zéro, à l`étape 7. A l`exception du cas où "essai numéro1" est un facteur de TestNumber2, les nombres premiers seront toujours zéro à l`étape 7.
  • Des astuces

    • Les 168 nombres premiers inférieurs à 1000 sont : 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79 , 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211 , 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359 , 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509 , 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673 , 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853 , 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997
    • Quand essayer de diviser est plus lent que les méthodes plus sophistiquées, il est toujours efficace pour les petits nombres. Même lors du test de grands nombres, il n`est pas rare de vérifier d`abord les petits nombres avant de passer aux méthodes les plus avancées.

    Nécessités

    • Du papier, un stylo, un crayon et/ou une calculatrice pour faire de l`exercice

    Оцените, пожалуйста статью