소수

Ki Tae Park·2020년 9월 27일
0

알고리즘

목록 보기
3/5
post-custom-banner

소수란?

1과 자기 자신으로 밖에 나누어 떨어지지 않는 1 이외의 정수.

예제

// 소수 찾는 방법
const isPrime = num => {
     if (num < 2) return false;
     if (num === 2) return true;
     for (let i = 2; i <= Math.sqrt(num); i++) {
         if (num % i === 0) {
             return false;
         }
     }
  return true;
};
  • 1은 소수가 아니므로 첫번 째 조건문으로 처리하며,
  • 2는 소수이므로 두번 째 조건문으로 빠르게 처리한다.
  • for loop에선 앞선 조건문으로 처리되지 않는 3이상의 값들을 판별할 때 쓰인다.
    • 인자로 주어진 값을 Math.sqrt 를 씌워서 해당 범위만큼만 루프를 수행하여 연산을 되도록 적게 한다.
    • 8 이 주어졌을 때 소인수 분해하면 1*8 , 2*4 , 4*2 , 8*1 과 같이 4개의 경우가 나온다.
      • 하지만 2*4 , 4*2 는 같은 경우로 보아도 무방하다. 1*8, 8*1 도 마찬가지. num에 루트를 씌우면 이러한 케이스를 절반으로 줄일 수 있음.
      • 8에 루트를 씌우면 2.8284271247461903 가 나오지만 소수점 자리를 버린 정수값을 취한다.
      • 해당 범위만큼 루프를 돌면서 소수인지 판별한다.
profile
#Coder Became Developer
post-custom-banner

0개의 댓글