Определение того, является ли число простым или нет, является одной из базовых задач в математике и программировании.
Простые числа - это натуральные числа больше 1, которые имеют ровно два делителя: 1 и само число.
Простые числа до 997 | |||||||
---|---|---|---|---|---|---|---|
2 | 3 | 5 | 7 | 11 | 13 | 17 | 19 |
23 | 29 | 31 | 37 | 41 | 43 | 47 | 53 |
59 | 61 | 67 | 71 | 73 | 79 | 83 | 89 |
97 | 101 | 103 | 107 | 109 | 113 | 127 | 131 |
137 | 139 | 149 | 151 | 157 | 163 | 167 | 173 |
179 | 181 | 191 | 193 | 197 | 199 | 211 | 223 |
227 | 229 | 233 | 239 | 241 | 251 | 257 | 263 |
269 | 271 | 277 | 281 | 283 | 293 | 307 | 311 |
313 | 317 | 331 | 337 | 347 | 349 | 353 | 359 |
367 | 373 | 379 | 383 | 389 | 397 | 401 | 409 |
419 | 421 | 431 | 433 | 439 | 443 | 449 | 457 |
461 | 463 | 467 | 479 | 487 | 491 | 499 | 503 |
509 | 521 | 523 | 541 | 547 | 557 | 563 | 569 |
571 | 577 | 587 | 593 | 599 | 601 | 607 | 613 |
617 | 619 | 631 | 641 | 643 | 647 | 653 | 659 |
661 | 673 | 677 | 683 | 691 | 701 | 709 | 719 |
727 | 733 | 739 | 743 | 751 | 757 | 761 | 769 |
773 | 787 | 797 | 809 | 811 | 821 | 823 | 827 |
829 | 839 | 853 | 857 | 859 | 863 | 877 | 881 |
883 | 887 | 907 | 911 | 919 | 929 | 937 | 941 |
947 | 953 | 967 | 971 | 977 | 983 | 991 | 997 |
Один из простых способов определить, является ли число простым или нет, - это перебрать все возможные делители числа и проверить их. Если у числа есть делитель, отличный от 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]
Этот метод эффективен для поиска всех простых чисел в большом диапазоне.