문제
1 이상의 자연수를 입력받아 소수(prime number)인지 여부를 리턴해야 합니다.
function isPrime(num) {
// TODO: 여기에 코드를 작성합니다.
// 의사코드
// num이 1이면, false 리턴하고 함수 종료.
// num이 1이 아니라면 for문에서 i로 2부터 num-1까지 돌면서 확인
// 만약 num % i === 0 이면 변수를 false로 바꿔줌.
let isPrimeNum = true;
if(num === 1){
return false;
}
for(let i=2; i<num; i++){
if(num % i === 0){
isPrimeNum = false;
}
}
return isPrimeNum;
}
function isPrime(num) {
let sqrt = parseInt(Math.sqrt(num));
if (num === 1) {
return false;
}
if (num === 2) {
return true;
}
if (num % 2 === 0) {
return false;
}
for (let i = 3; i <= sqrt; i += 2) {
if (num % i === 0) {
return false;
}
}
return true;
}
1*12
-2*6
-3*4
-√12*√12
-4*3
-6*2
-12*1
2 이상의 자연수를 입력받아 2부터 해당 수까지의 소수(prime number)들을 리턴해야 합니다.
function listPrimes(num) {
let result = '2';
for (let candi = 3; candi <= num; candi += 2) {
let isPrime = true;
let sqrt = parseInt(Math.sqrt(candi));
for (let divider = 3; divider <= sqrt; divider += 2) {
if (candi % divider === 0) {
isPrime = false;
break;
}
}
if (isPrime) {
result = `${result}-${candi}`;
}
}
return result;
}