[RUBY] Si le produit total des n premiers nombres premiers plus 1 est un nombre premier

1

On savait déjà dans la Grèce antique qu'il existe un nombre infini de nombres premiers. La preuve suivante est écrite dans " Principes Stoikeia </ ruby>" compilé en Colombie-Britannique.

Disons que vous n'avez que trois nombres premiers. Soit cela $ p $, $ q $, $ r $. Lorsque $ pqr + 1 $ est divisé par $ p $, $ q $ ou $ r $, il reste $ 1 $. Cela viole l'hypothèse selon laquelle les nombres premiers sont seulement $ p $, $ q $, $ r $. (Ce raisonnement est le même qu'il y ait 4 ou 5 nombres premiers. Autrement dit, supposer un nombre fini de nombres premiers conduit toujours à une contradiction.)

Il utilise la méthode de l'absurdité (un raisonnement qui dérive une contradiction de l'hypothèse A et prouve le déni de A). Quand j'ai rencontré cette preuve au collège, j'étais un peu ému. La méthode de l'absurdité était cool, et j'ai pensé que c'était merveilleux de tirer la contradiction de la formule simple "produit total de tous les nombres premiers plus 1".

2

À peu près au même moment, j'ai appris qu'il y avait un thème de «recherche de grands nombres premiers». Avec les progrès des ordinateurs électroniques, j'ai vu que d'énormes nombres premiers qui ne pouvaient jamais être trouvés par calcul manuel étaient trouvés l'un après l'autre, et une liste a été faite comme qui a trouvé quel nombre premier en quelle année. ..

3

Un amateur comme moi se souvient de la preuve de la «théorie originale» et trouve une chose tellement fausse.

Vous pouvez facilement obtenir un nombre premier énorme en multipliant tous les nombres premiers trouvés et en ajoutant 1!

Bien sûr que non. L'hypothèse que le nombre est fini n'a conduit qu'à la situation que le produit total plus 1 n'est divisible par aucun. En réalité, il existe un nombre infini de nombres premiers, et ce n'est pas parce qu'un nombre fini de nombres premiers est retiré, multiplié et ajouté à 1 que ce sont des nombres premiers.

4

Mais est-ce vrai? La somme de $ n $ nombres premiers plus un n'est pas divisible par au moins ces nombres premiers. Par conséquent, dans un sens, on peut dire qu'il s'agit d'un «nombre difficile à diviser». D'ailleurs, n'y a-t-il pas pas mal de nombres premiers en eux?

Considérant le tamis tamis </ ruby> d'Eratostenes, il semble efficace d'éliminer les multiples de petits nombres premiers afin d'éliminer les nombres synthétiques.

Par conséquent, il semble préférable de trier les nombres premiers par ordre croissant, de prendre les premières pièces de $ n $ et d'ajouter 1 à leur produit total.

5

Prenons d'abord le premier nombre premier $ 2 $. $ 3 $, qui est la somme de ceci et de $ 1 $, est un nombre premier.

Suivant. $ 2 \ cdot3 + 1 = 7 $ est un nombre premier. Comme c'est gentil.

$ 2 \ cdot3 \ cdot5 + 1 = 31 $ est aussi un nombre premier. Eh bien, il est en bon état.

Que diriez-vous de $ 2 \ cdot3 \ cdot5 \ cdot7 + 1 = 211 $? Il est facile de voir que ni 11 $ ni 13 $ ne sont divisibles. 17 $ ^ 2 $ dépasseront 211 $, vous n'avez donc pas à l'essayer. Il s'est avéré être un nombre premier. Hmmm, l'histoire n'est-elle pas trop belle? Jusqu'à présent, j'ai fait de mon mieux par calcul manuel.

Que diriez-vous de $ 2 \ cdot3 \ cdot5 \ cdot7 \ cdot11 + 1 = 2311 $? J'ai abandonné le calcul manuel. Ce n'est pas si difficile, mais je ne suis pas sûr de ne pas me tromper dans le calcul.

Ici au terminal

irb -r prime

Frappé. Cela démarrera l'environnement interactif Ruby et chargera la bibliothèque de nombres premiers prime.

Et

irb(main):001:0> 2311.prime?
=> true

Oh, est-ce aussi un nombre premier! (Vous pouvez vérifier qu'un entier est un nombre premier à Integer # prime?)

Je n'ai jamais pensé que seuls les nombres premiers sortiraient aussi bien.

6

Examinons-le systématiquement dans le programme. Écrivez comme suit en Ruby.

require "prime"

1.step do |n|
  m = Prime.take(n).inject(:*) + 1
  puts "%3d %s %d" % [n, (m.prime? ? "o" : "x"), m]
end

Ce programme n'est pas écrit pour s'arrêter. Formellement, il continue à chercher indéfiniment.

Prime.take (n) donne le premier tableau n de nombres premiers.

ʻInject (: *) `donne le produit total.

Et

Juste afficher et côte à côte.

7

Les résultats sont les suivants.

  1 o 3
  2 o 7
  3 o 31
  4 o 211
  5 o 2311
  6 x 30031
  7 x 510511
  8 x 9699691
  9 x 223092871
 10 x 6469693231
 11 o 200560490131
 12 x 7420738134811
 13 x 304250263527211
 14 x 13082761331670031
 15 x 614889782588491411
 16 x 32589158477190044731
 17 x 1922760350154212639071
 18 x 117288381359406970983271

Cela monte jusqu'à $ n = 18 $ à la fois, mais cela ne dure pas éternellement.

Jusqu'à $ n = 5 $, c'était un nombre premier, mais après cela, un nombre composé suit. Hmmm désolé.

Quand je pense que le nombre premier apparaît enfin à $ n = 11 $, le nombre composé continue à nouveau.

Était-ce une illusion que je pensais: "Je pense que les nombres premiers sont inclus dans une bonne proportion?"

Recommended Posts

Si le produit total des n premiers nombres premiers plus 1 est un nombre premier
Faisons une combinaison sans duplication | Premièrement, calculons le nombre total
Dans Time.strptime,% j (date totale de l'année) est
[Xcode] Tout d'abord, c'est un raccourci pratique
La spécification d'autorisation de la méthode FileUtils est un nombre octal.
Le nième et le n + 1er caractères d'une chaîne Ruby
Trouvez le nombre de jours dans un mois avec Kotlin