Простые числа — это увлекательные математические объекты, которые играют решающую роль в различных областях, включая криптографию, теорию чисел и информатику. В этой статье блога мы рассмотрим различные методы генерации простых чисел с помощью цикла for в JavaScript. Мы предоставим примеры кода для каждого метода, что позволит вам понять и реализовать их в ваших собственных проектах. Давайте погрузимся!
Метод 1: базовая проверка простых чисел
Первый метод включает проверку того, является ли число простым, путем перебора всех чисел от 2 до квадратного корня из числа. Если число делится на любое из этих значений, оно не является простым.
function isPrime(num) {
if (num <= 1) {
return false;
}
for (let i = 2; i <= Math.sqrt(num); i++) {
if (num % i === 0) {
return false;
}
}
return true;
}
Метод 2: Решето Эратосфена
Решето Эратосфена — это древний алгоритм для поиска всех простых чисел до заданного предела. Он работает путем итеративной маркировки кратных каждого простого числа, начиная с 2, тем самым исключая непростые числа.
function getPrimesUpTo(limit) {
const sieve = [];
const primes = [];
for (let i = 2; i <= limit; i++) {
if (!sieve[i]) {
primes.push(i);
for (let j = i * i; j <= limit; j += i) {
sieve[j] = true;
}
}
}
return primes;
}
Метод 3: оптимизированная проверка простых чисел
Этот метод улучшает базовую проверку простых чисел за счет использования некоторых оптимизаций. Он проверяет делимость только до квадратного корня числа и пропускает четные числа больше 2.
function isPrimeOptimized(num) {
if (num <= 1) {
return false;
}
if (num <= 3) {
return true;
}
if (num % 2 === 0 || num % 3 === 0) {
return false;
}
for (let i = 5; i * i <= num; i += 6) {
if (num % i === 0 || num % (i + 2) === 0) {
return false;
}
}
return true;
}
Метод 4: Генератор простых чисел с подсчетом
Этот метод генерирует указанное количество простых чисел с помощью цикла for и сохраняет их в массиве.
function generatePrimes(count) {
const primes = [];
let num = 2;
while (primes.length < count) {
if (isPrime(num)) {
primes.push(num);
}
num++;
}
return primes;
}