Перейти до основного контенту

Перевірка простих чисел з використанням JavaScript: корисні поради та інструкції

8 хв читання
1990 переглядів

Прості числа - це числа, які діляться без залишку тільки на себе та на одиницю. Вони є основою для безлічі математичних та алгоритмічних операцій. У програмуванні на JavaScript також часто виникає необхідність перевірити, чи є число простим, чи ні.

Існує кілька способів перевірки чисел на простоту в JavaScript. Одним з найпростіших та ефективних методів є використання алгоритму перевірки числа на дільність на всі числа від 2 до n / 2, де n - це числo, яке потрібно перевірити.

Іншим способом перевірки числа на простоту є використання решета Ератосфена. Це алгоритм, який дозволяє знайти всі прості числа до заданого числа n. По суті, він складається з послідовних кроків: спершу створюється список усіх чисел від 2 до n, потім відбувається видалення всіх чисел, які діляться на вже знайдені прості числа.

Що таке прості числа?

Прості числа — це, наприклад, числа 2, 3, 5, 7, 11 тощо. На відміну від простих чисел, складні числа мають більше двох дільників.

Прості числа важливі в математиці і широко використовуються в криптографії та в інших сферах. Наприклад, їх використовують для створення шифрів, генерації випадкових чисел, факторизації чисел і перевірки чисел на простоту.

Перевірка числа на простоту може бути корисною в алгоритмах, програмуванні та при розв'язанні задач, пов'язаних з числами.

Визначення та властивості простих чисел

Властивості простих чисел:

  • Просте число завжди є натуральним числом більше 1.
  • Прості числа не мають дільників, окрім 1 і самого себе.
  • Прості числа не можуть бути позитивними або негативними дробами чи десятковими числами.
  • Множина всіх простих чисел безкінечна і не може бути повністю перерахована.
  • Найбільшим простим числом є число 2.
  • Одиниця не є простим числом, оскільки вона має лише один дільник.

Визначення простих чисел відіграє важливу роль, наприклад, в криптографії, при побудові шифрів та генерації випадкових чисел.

Алгоритми перевірки на простоту

Існує кілька алгоритмів перевірки на простоту числа. Ось два з найбільш поширених:

Метод перебору дільниківМетод решета Ератосфена
Цей метод ґрунтується на переборі всіх можливих дільників числа, починаючи з 2. Якщо числу не вдається поділитися без залишку хоча б на одне число, значить, воно є простим. Очевидно, що цей метод не є оптимальним для великих чисел, оскільки вимагає багато обчислювальних ресурсів.Метод решета Ератосфена базується на принципі виключення. Спочатку створюється масив від 2 до самого числа, яке потрібно перевірити. Потім, починаючи з 2, він проходить масивом і викреслює всі числа, які є кратними йому. Потім переходить до наступного невикресленого числа і продовжує аналогічні операції. Після завершення алгоритму всі числа, які залишилися невикресленими, є простими.Використовуйте один з цих алгоритмів для перевірки чисел на простоту в JavaScript і виберіть найбільш підходящий для ваших завдань.Лінійний сито: ефективний алгоритм перевірки на простотуАлгоритм лінійної решітки складається з наступних кроків:Створення масиву з n елементів, де n - найбільше число, яке потрібно перевірити на простоту. На початку всі елементи масиву помічені як прості числа.Для кожного числа p від 2 до √n виконати наступні дії:Якщо p помічено як просте число, то помітити кожне число, яке є його кратним, як складне число.Алгоритм лінійної решіткизначно прискорює перевірку на простоту чисел, особливо коли числа достатньо великі. Замість перебору всіх чисел до даного, алгоритм знаходить всі прості числа до заданого числа шляхом їх позначення.Використання алгоритму лінійної решітки може стати корисним для різних задач, які вимагають перевірки на простоту великої кількості чисел.Тести простоти для великих чиселОдин з найбільш ефективних алгоритмів для перевірки простоти великих чисел є алгоритм Міллера-Рабіна. Він заснований на тесті Ферма і перевіряє числа на простоту за допомогою випадкових чисел.Алгоритм Міллера-Рабіна працює наступним чином:Вибирається випадкове підстави a, яке повинно бути менше перевіряємого числа n.Обчислюються значення r і s так, що n-1 = 2^s * r, де r – непарне число.Обчислюється значення x = a^r mod n.Якщо x дорівнює 1 або -1(mod n), тоді число n, швидше за все, є простим.Якщо x не дорівнює 1 або -1 (mod n), то виконується r-1 операцій підняття в квадрат, поки не буде досягнуто значення x = a^(2^i * r) mod n для деякого i від 0 до s-1.Якщо останнє значення x дорівнює -1 (mod n), то число n, швидше за все, є простим.Якщо останнє значення x не дорівнює 1 або -1 (mod n), то число n точно складане.Алгоритм Міллера-Рабіна дозволяє перевірити простоту числа з будь-якою заданою мірою впевненості. Чим більше число повторень алгоритму для кожної перевірки, тим менша ймовірність помилкових позитивних результатів. Однак збільшення числа повторень також збільшує витрати обчислювальних ресурсів.Для перевірки простоти великих чисел на JavaScript можна використовувати готові бібліотеки, такі як BigInteger.js або crypto-random-number. Вони надають функції для виконання алгоритмуМіллера-Рабіна та інших тестів простоти.Приклад використання функції перевірки простоти числа за допомогою бібліотеки BigInteger.js:Важливо враховувати, що перевірка простоти великих чисел може бути витратною за часом операцією, особливо для чисел з великою кількістю цифр. Тому перед виконанням перевірки слід ретельно оцінити можливий час виконання та обмежити його за потреби.Реалізація перевірки простих чисел на JavaScriptОдин з найбільш ефективних підходів для перевірки числа на простоту - це використання алгоритму "Решето Ератосфена". Цей алгоритм дозволяє знайти всі прості числа в певному діапазоні.В JavaScript можна реалізувати перевірку числа на простоту за допомогою функції, яка прийматиме число в якості аргументу і повертатиме булеве значення - true, якщо число просте, і false, якщо число не єпростим.Ось один з варіантів реалізації:У цій реалізації функція перевіряє, чи є число меншим або рівним 1. Якщо число таке, то воно не є простим, і функція повертає false. Потім функція перебирає всі числа від 2 до квадратного кореня з числа і перевіряє, ділиться чи число на будь-яке з цих чисел без залишку. Якщо ділиться, то число не є простим. Якщо жодне з чисел не ділить число без залишку, то число просте, і функція повертає true.Використовуючи цю функцію, ви можете перевіряти числа на простоту у вашому JavaScript-коді.Приклади використання функції перевірки простих чиселОсь кілька прикладів використання функції перевірки простих чисел:Перевірка числа 7 на простоту:isPrime(7); // trueПеревірка числа 15 на простоту:isPrime(15); // falseПеревірка числа 23 на простоту:isPrime(23); // trueВи також можете використовувати цикл і функцію для перевірки простих чисел у заданому діапазоні:Таким чином, ви можете використовувати функцію перевірки простих чисел, щоб перевірити конкретне число на простоту або вивести всі прості числа в заданому діапазоні.
2026 Notatka. Всі права захищені.