Онлайн генератор простых чисел
Что такое простое число?
Простое число — это натуральное число, большее 1, которое делится только на 1 и на само себя. Наименьшие простые числа: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29… Число 2 — единственное четное простое число; все остальные четные числа делятся на два.
Числа, такие как 4 (= 2 × 2), 6 (= 2 × 3) или 15 (= 3 × 5), не являются простыми числами — мы называем их составными числами.
Как работает генератор?
Для вывода всех простых чисел в диапазоне мы используем Решето Эратосфена — один из старейших и наиболее эффективных алгоритмов, описанный греческим математиком Эратосфеном Киренским около 240 года до нашей эры.
Алгоритм последовательно вычеркивает кратные каждого найденного простого числа. То, что остается, и есть простые числа. Весь расчет происходит непосредственно в вашем браузере — никакие данные не отправляются на сервер.
Для случайного выбора генератор сначала составляет список всех простых чисел в диапазоне, а затем случайно выбирает из него необходимое количество с помощью криптографически безопасного генератора (crypto.getRandomValues()).
Функции генератора
- Все простые числа – выводит каждое простое число в заданном диапазоне (макс. 10 000)
- Случайный выбор – выбирает N случайных простых чисел из диапазона (подходит для больших диапазонов)
- Сортировка – сортирует результаты по возрастанию
- Разделитель – выберите, как будут разделены числа при копировании
- Быстрые предустановки – самые частые диапазоны в один клик
Где используются простые числа?
Криптография и безопасность
Простые числа являются основой современной криптографии. Алгоритмы, такие как RSA, работают по принципу, что произведение двух больших простых чисел легко вычислить, но обратное разложение на простые множители является вычислительно очень сложным.
- Шифрование RSA – ключи генерируются из двух больших простых чисел
- Диффи-Хеллман – обмен ключами по простому модулю
- Хэш-функции – простые числа как магические константы (SHA, MD5)
Математика и наука
- Теория чисел – основные строительные блоки целых чисел
- Гипотеза Гольдбаха – каждое четное число > 2 может быть выражено как сумма двух простых чисел (пока не доказано)
- Гипотеза Римана – одна из проблем Гильберта, касается распределения простых чисел
Практическое использование
- Хэш-таблицы – размер таблицы как простое число уменьшает коллизии
- Генераторы псевдослучайных чисел – линейные конгруэнции с простым модулем
- Музыка и ритм – полиритмы с простыми длинами циклов
Распределение простых чисел
Простые числа распределены среди натуральных чисел неравномерно, но их плотность уменьшается с ростом диапазона. Это описывает Теорема о распределении простых чисел: количество простых чисел до N приближенно равно N / ln(N).
| Диапазон | Количество простых чисел |
|---|---|
| 1–10 | 4 |
| 1–100 | 25 |
| 1–1 000 | 168 |
| 1–10 000 | 1 229 |
| 1–100 000 | 9 592 |
| 1–1 000 000 | 78 498 |
Решето Эратосфена шаг за шагом
Диапазон 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. Выберите 2, вычеркните кратные: 4, 6, 8, 10, 12...
2. Выберите 3, вычеркните кратные: 9, 15, 21, 27...
3. Выберите 5, вычеркните кратные: 25...
4. √30 ≈ 5.5 → готово
Простые числа: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29
Решето Эратосфена в коде
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