awilum.ru
Статьи Курсы Об авторе

Определение простых чисел в JavaScript

Определение того, является ли число простым или нет, является одной из базовых задач в математике и программировании.

Простые числа - это натуральные числа больше 1, которые имеют ровно два делителя: 1 и само число.

Простые числа до 997
235711131719
2329313741434753
5961677173798389
97101103107109113127131
137139149151157163167173
179181191193197199211223
227229233239241251257263
269271277281283293307311
313317331337347349353359
367373379383389397401409
419421431433439443449457
461463467479487491499503
509521523541547557563569
571577587593599601607613
617619631641643647653659
661673677683691701709719
727733739743751757761769
773787797809811821823827
829839853857859863877881
883887907911919929937941
947953967971977983991997

Перебор делителей

Один из простых способов определить, является ли число простым или нет, - это перебрать все возможные делители числа и проверить их. Если у числа есть делитель, отличный от 1 и самого числа, то оно не является простым.

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;
}

// Пример использования:
console.log(isPrime(2));   // true
console.log(isPrime(992)); // false

Этот метод эффективен, когда нужно определить простоту небольших чисел.

Решето Эратосфена

Решето Эратосфена - это алгоритм, который приписывают древнегреческому математику Эратосфену Киренскому, и который позволяет найти все простые числа в заданном диапазоне. Метод Решето Эратосфена основан на идее исключения кратных чисел.

function sieveOfEratosthenes(max) {
    let sieve = [];
    let primes = [];
    for (let i = 2; i <= max; i++) {
        if (!sieve[i]) {
            primes.push(i);
            for (let j = i * 2; j <= max; j += i) {
                sieve[j] = true;
            }
        }
    }
    return primes;
}

// Пример использования:
console.log(sieveOfEratosthenes(30)); [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

Этот метод эффективен для поиска всех простых чисел в большом диапазоне.

Хотите освоить JavaScript и стать востребованным разработчиком?
Присоединяйтесь к курсу JavaScript Базовый уровень прямо сейчас!
Изучите основы и продвинутые концепции, создавайте интерактивные веб-приложения и воплотите свои идеи в реальности. Не упустите шанс стать экспертом в мире разработки – начните свой путь прямо сейчас!
Обнаружили ошибку в этой статье? Хотите уточнить, обновить или добавить что-то?
Все мои статьи доступны для редактирования на GitHub. Буду благодарен за любое улучшение или исправление!