js 소수판별 isPrime() 함수 만들기

이다형·2023년 7월 11일
0

함수로 만들어서 사용

function isPrime(num){
	//1보다 작거나 1이면 소수가 아님
   if(num<=1)return false;
   //짝수 중 유일한 소수는 2, 이외는 소수가 아님
   if(num%2===0){
       return num ===2?true:false;
   }
   //홀수 중 소수판별
   const sqrt = parseInt(Math.sqrt(num));
   for(let div=3;div<=sqrt;div+=2){
       if(num%div===0){
           return false;
       }
   }
   return true;
}
  1. 1이거나 1보다 작으면 false 반환

  2. 2가 아닌 짝수이면 false 반환

  3. 제곱근보다 작은 홀수로 나눠가면서 0으로 나누어 떨어지면 false 반환

  4. 모든 조건에 걸리지 않는다면 true 반환, 소수

사용 예시

isPrime(17) ? console.log("소수입니다.") : console.log("소수가 아닙니다.")
// 소수입니다.
isPrime(30) ? console.log("소수입니다.") : console.log("소수가 아닙니다.")
// 소수가 아닙니다.

0개의 댓글