Пошук уроків, статей та іншого контенту
Визначте, чи є число простим, не перевіряючи всі дільники до самого числа.
Напишіть функцію solve(n), яка повертає true, якщо число n просте (ділиться лише на 1 і саме себе, і більше за 1), і false в іншому випадку.
Приклади
Вхід: 17
Вихід: true
Вхід: 18
Вихід: false
Вхід: 1
Вихід: false
за визначенням просте число має бути більшим за 1
Обмеження: n — ціле число
Ваше рішення
Підказки
Досить перевірити дільники лише до квадратного кореня з n — якщо дільника немає до цієї межі, його немає і після неї.
Числа менші за 2 (включно з від'ємними та 0) простими не бувають.
function solve(n) {
if (n < 2) return false;
for (let i = 2; i * i <= n; i++) {
if (n % i === 0) return false;
}
return true;
}Цикл перевіряє дільники лише до Math.sqrt(n) (виражено як i * i <= n, щоб уникнути обчислення кореня) — якщо жоден дільник у цьому діапазоні не знайдено, більших дільників (окрім самого n) теж не існує.