- 소수 판별
console.clear();
// 소수 판별기(넘겨진 값이 소수인지 아닌지)
function isPrimeNumber(num) {
if (num <= 1) return false;
for (let i = 2; i < num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
// 1부터 n까지 수 중에서 소수만 배열담아서 리턴
function getPrimeNumbers(maxValue) {
const primeNumbers = [];
for (let i = 1; i <= maxValue; i++) {
if (isPrimeNumber(i)) {
primeNumbers.push(i);
}
}
return primeNumbers;
}
function getPrimeNumbersCount(maxValue) {
return getPrimeNumbers(maxValue).length;
}
let num = 10000;
console.time("a");
console.log(getPrimeNumbers(num));
console.log(getPrimeNumbersCount(num));
console.timeEnd("a");
- getPrimeNumbers 함수 -> 1~maxValue까지 반복문을 도는데 반복시키는 값이 isPrimeNumber == true에 해당하면 배열에 추가
- isPrimeNumber 함수 -> 1~maxValue의 값을 i(2~num-1) 값들로 나눴을 때 0이 되는게 있으면 소수가 아님! (소수는 1과 자기 자신만으로 나누어지는 수니까)
- console.time(): 어떤 작업에 소요되는 시간을 측정해야 할 경우 사용, 주어진 이름의 타이머 실행
- console.timeEnd(): 주어진 이름의 타이머 종료
- console.timeEnd()가 호출되면 브라우저가 mesc단위로 경과한 시간(console.time()와 console.timeEnd() 사이의 작업 구간의 시간)을 출력

'JavaScript' 카테고리의 다른 글
JavaScript - Optional chaining(?.) (0) | 2024.04.05 |
---|