Số nguyên tố là gì? Số nguyên tố là số nguyên lớn hơn 1 không thể chia hết cho bất kỳ số nguyên nào khác ngoài chính nó và 1 (ví dụ: 2, 3, 5, 7, 11). Số nguyên tố Số 5 là vì chỉ có 2 ước là 1 và 5. số nguyên tố Số 4 vì các ước của nó là 1, 2 và 4. không phải là số nguyên tố Hãy tạo một hàm sẽ trả về nếu chuỗi là và trả về nếu một số không phải là . true số nguyên tố false số nguyên tố isPrime(3); // true isPrime(9); // false Hãy tạo một chức năng function isPrime(num) { } là số lớn hơn 1. Vậy số nhỏ hơn 1 không phải là Số nguyên tố số nguyên tố. function isPrime(num) { if (num <= 1) return false; } isPrime(-5); // false được sử dụng để lấy phần dư sau khi chia. Chúng ta sẽ kiểm tra xem có thể được chia thành các thừa số khác (ngoại trừ 1 và chính nó) mà không để lại phần dư hay không. Toán tử modulo num function isPrime(num) { if (num <= 1) return false; for (let i=2; i<num; i++) { if (num%i !== 0) return false; } return true; } rằng 2 là một Hãy nhớ số nguyên tố. function isPrime(num) { if (num <= 1) return false; if (num === 2) return true; for (let i=2; i<num; i++) { if (num%i === 0) return false; } return true; } isPrime(5); //true isPrime(9); //false Nếu chúng ta có một số lượng lớn thì sao? isPrime(56669900033); Chức năng của chúng tôi sẽ chạy chậm hơn. Chúng ta có thể rút ngắn quá trình bằng cách sử dụng Ví dụ, căn bậc hai. số Căn bậc hai của là . Điều này có nghĩa là , vì một chỉ có thể chia hết cho chính nó và 1. Vì vậy, thay vì lặp từ , chúng ta chỉ có thể lặp đến và bao gồm , căn bậc hai của . 121. 121 11 121 không phải là số nguyên tố số nguyên tố 2 đến 121 11 121 tìm căn bậc hai của một số. Math.sqrt() function isPrime(num) { if (num <= 1) return false; if (num === 2) return true; let numSqrt = Math.sqrt(num); for (let i=2; i<=numSqrt; i++) { if (num%i === 0) return false; } return true; } isPrime(5); //true isPrime(121); //false Sophie Germain Số Nguyên Tố Nếu cả p và 2p+1 đều là số nguyên tố thì p là . Ví dụ: số nguyên tố Sophie Germain 2, 3, 5, 11, 23, 29, 41, 53, 83, 89… là và 5 số nguyên tố 5*2+1=11 cũng là một . Vì vậy, cả và đều là 11 số nguyên tố 5 11 số nguyên tố Sophie Germain. Hãy tạo một hàm sẽ trả về một mảng các từ đến số nguyên tố Sophie Germain 2 n. Chúng ta sẽ sử dụng hàm từ ví dụ trước để kiểm tra xem số đó có phải là số nguyên tố hay không. isPrime() function getGermainPrimes(n) { let result = []; // an array of Sophie Germain prime numbers (our result) for (let i = 0; i <= n; i++) { if (isPrime(i) && isPrime(i*2 + 1)) { //if both i and 2i+1 are prime result.push(i); } } return result; } getGermainPrimes(100); // [2, 3, 5, 11, 23, 29, 41, 53, 83, 89] https://www.youtube.com/watch?v=XOgA8s2y7-Y/?embedable=true Tôi hy vọng bạn tìm thấy điều này hữu ích!