Générateur de nombres premiers en ligne

Préréglages rapides:
Séparateur lors de la copie

Qu’est-ce qu’un nombre premier ?

Un nombre premier est un entier naturel supérieur à 1 qui n’a que deux diviseurs distincts : 1 et lui-même. Les plus petits nombres premiers sont 2, 3, 5, 7, 11, 13, 17, 19, 23, 29… Le nombre 2 est le seul nombre premier pair – tous les autres nombres pairs sont divisibles par deux.

Des nombres comme 4 (= 2 × 2), 6 (= 2 × 3) ou 15 (= 3 × 5) ne sont pas des nombres premiers – on les appelle des nombres composés.

Comment fonctionne le générateur ?

Pour lister tous les nombres premiers dans une plage, nous utilisons le crible d’Ératosthène – l’un des algorithmes les plus anciens et les plus efficaces, décrit par le mathématicien grec Ératosthène de Cyrène vers 240 av. J.-C.

L’algorithme élimine progressivement les multiples de chaque nombre premier trouvé. Ce qui reste sont les nombres premiers. Le calcul entier se déroule directement dans votre navigateur – aucune donnée n’est envoyée au serveur.

Pour la sélection aléatoire, le générateur construit d’abord une liste de tous les nombres premiers dans la plage, puis en sélectionne aléatoirement le nombre désiré à l’aide d’un générateur cryptographiquement sécurisé (crypto.getRandomValues()).

Fonctionnalités du générateur

  • Tous les nombres premiers – liste chaque nombre premier dans la plage spécifiée (max. 10 000)
  • Sélection aléatoire – sélectionne N nombres premiers aléatoires dans la plage (adapté aux grandes plages)
  • Tri – triez les résultats par ordre croissant
  • Séparateur – choisissez comment les nombres seront séparés lors de la copie
  • Préréglages rapides – les plages les plus courantes en un clic

Où sont utilisés les nombres premiers ?

Cryptographie et sécurité

Les nombres premiers sont la base de la cryptographie moderne. Des algorithmes comme RSA reposent sur le principe qu’il est facile de calculer le produit de deux grands nombres premiers, mais que la factorisation inverse en facteurs premiers est très difficile sur le plan informatique.

  • Chiffrement RSA – les clés sont générées à partir de deux grands nombres premiers
  • Diffie-Hellman – échange de clés sur un module premier
  • Fonctions de hachage – les nombres premiers comme constantes magiques (SHA, MD5)

Mathématiques et science

  • Théorie des nombres – les blocs de construction fondamentaux des nombres entiers
  • Conjecture de Goldbach – tout nombre pair > 2 peut être exprimé comme la somme de deux nombres premiers (encore non prouvé)
  • Hypothèse de Riemann – l’un des problèmes de Hilbert, concerne la distribution des nombres premiers

Utilisations pratiques

  • Tables de hachage – la taille de la table en tant que nombre premier réduit les collisions
  • Générateurs de nombres pseudo-aléatoires – congruence linéaire avec un module premier
  • Musique et rythme – polyrythmies avec des longueurs de cycle premières

Distribution des nombres premiers

Les nombres premiers sont distribués irrégulièrement parmi les entiers naturels, mais leur densité diminue avec l’augmentation de la plage. C’est ce que décrit le Théorème des nombres premiers : le nombre de nombres premiers jusqu’à N est approximativement N / ln(N).

PlageNombre de nombres premiers
1–104
1–10025
1–1 000168
1–10 0001 229
1–100 0009 592
1–1 000 00078 498

Le crible d’Ératosthène étape par étape

Plage 2–30 :
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

1. Choisissez 2, barrez ses multiples : 4, 6, 8, 10, 12...
2. Choisissez 3, barrez ses multiples : 9, 15, 21, 27...
3. Choisissez 5, barrez ses multiples : 25...
4. √30 ≈ 5.5 → terminé

Nombres premiers : 2, 3, 5, 7, 11, 13, 17, 19, 23, 29

Le crible d’Ératosthène en code

JavaScript

function sieve(to) {
  const composite = new Uint8Array(to + 1);
  const primes = [];
  for (let p = 2; p <= to; p++) {
    if (composite[p]) continue;
    primes.push(p);
    for (let j = p * p; j <= to; j += p) composite[j] = 1;
  }
  return primes;
}

Python

def sieve(n):
    composite = bytearray(n + 1)
    primes = []
    for p in range(2, n + 1):
        if not composite[p]:
            primes.append(p)
            for j in range(p * p, n + 1, p):
                composite[j] = 1
    return primes

Questions fréquentes (FAQ)

Le 1 est-il un nombre premier ? Non. Le nombre 1 n'est traditionnellement pas considéré comme un nombre premier. La raison est mathématique – si nous considérions 1 comme un nombre premier, le théorème fondamental de l'arithmétique (décomposition unique en facteurs premiers) ne serait plus valide.
Le 2 est-il un nombre premier ? Oui. Le nombre 2 est le plus petit et le seul nombre premier pair. Tous les autres nombres pairs sont divisibles par deux, donc composés.
Combien y a-t-il de nombres premiers ? Une infinité. Euclide l'a démontré vers 300 av. J.-C. par une élégante preuve par l'absurde : supposons qu'il n'existe qu'un nombre fini de nombres premiers. Leur produit + 1 ne peut alors être divisible par aucun d'entre eux – c'est donc un nouveau nombre premier, une contradiction.
Que sont les nombres premiers jumeaux ? Les nombres premiers jumeaux sont des paires de nombres premiers qui diffèrent de 2, par exemple (3, 5), (11, 13), (17, 19), (41, 43). La question de savoir s'il en existe une infinité reste non résolue en mathématiques à ce jour (Conjecture des nombres premiers jumeaux).
Quelle est la rapidité de l'algorithme ? Le crible d'Ératosthène a une complexité temporelle de O(n log log n). Pour une plage allant jusqu'à 10 millions, le calcul dans le navigateur prend généralement moins de 100 ms.