Problem
- Define a function that takes an integer argument and returns logical value ‘true’ or ‘false’ depending on if the integer is a prime.
- 정수가 소수(prime number)인지에 따라 논리값 ‘true’ 또는 ‘false’를 반환한다.
- A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself.
- 소수(prime number)는 1보다 큰 자연수이며, 1 이외의 양의 제수(divisor, 나눗수)가 없다.
Solution 01
function isPrime(n) {
if (n < 2) return false;
for (let i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
return false;
}
}
return true;
}
isPrime(0); // false
isPrime(1); // false
isPrime(2); // true
isPrime(3); // true
isPrime(4); // false
isPrime(5); // true
isPrime(6); // false
isPrime(7); // true
isPrime(8); // false
Solution 02
function isPrime(n) {
for (let i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
return false;
}
}
return n > 1;
}
isPrime(0); // false
isPrime(1); // false
isPrime(2); // true
isPrime(3); // true
isPrime(4); // false
isPrime(5); // true
isPrime(6); // false
isPrime(7); // true
isPrime(8); // false
Solution 03
function isPrime(n) {
let i = 1;
while (i++ < n - 1) {
if (n % i === 0) {
return false;
}
}
return n > 1;
}
isPrime(0); // false
isPrime(1); // false
isPrime(2); // true
isPrime(3); // true
isPrime(4); // false
isPrime(5); // true
isPrime(6); // false
isPrime(7); // true
isPrime(8); // false