알고리즘: 소수 판별하기 [2/21]

가르송·2023년 2월 21일
0

매일공부

목록 보기
6/11

오늘 내 수준보다 어려운 알고리즘 문제를 접했는데, 소수를 판별하는 기능을 가지고 있어야만 해결할 수 있는 케이스였다. 당황스러워서 두 시간을 그 문제만 붙잡고 있었는데 결국 풀지 못했다.

헬스장에서 무엇이 문제였는지 곰곰이 생각해 봤는데, 놀랍게도 답이 나왔다!
잊어버리기 전에 급하게 기록을 남긴다.

소수란?

소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수다.
2, 3, 5, 7, 11, 13, 17 등이 이에 해당한다.

자바스크립트로 주어진 숫자가 소수인지 아닌지 판별하기 위해서는 반복문을 활용해야 한다.

의사코드

실제 코드를 작성하기 전에 의사 코드를 만들었다.

  1. 주어진 숫자를 num이라고 한다. num은 2 이상인 수다.
  2. 2부터 (num - 1)까지의 수로 차례대로 num을 나눈다.
  3. 만약 0으로 나누어 떨어지는 경우가 있다면 num은 소수가 아니다.
  4. 끝까지 0으로 나누어 떨어지지 않으면 num은 소수이다.

실제 코드

function findPrime (num) {
  if (num < 2) return "2 이상의 수를 입력해 주십시오.";

  for (let i = 2; i <= num; i++) {
    if (i === num) return true;

    if (num % i === 0) {
      return false;
    }
  }
}

잘 작동한다.
다만 예외가 있을 수 있으니 테스트 코드를 작성하는 방법을 공부해서 직접 테스트 케이스를 돌려봐야겠다.

profile
개발도 운동도 뜻대로 되지 않을 때에는? 산책을 합니다.

0개의 댓글