프로그래머스 코딩테스트 1. 소수 찾기(JavaScript)

부기·2022년 7월 2일
0

문제설명

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.

소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
(1은 소수가 아닙니다.)

제한 조건

n은 2이상 1000000이하의 자연수입니다.

입출력 예

코드

function solution(n) {
    let answer = 0;
    let isPrime = true;
  // 1부터 n 사이에서 소수를 찾아야 하기 때문에 i는 2부터 시작해서 n보다 작거나 같을 때까지
    for(let i = 2; i <= n; i++) {
      // 본격적으로 소수 찾기를 위한 for문.
      // i의 제곱근보다 작거나 같을 때까지 j를 2부터 올려주면서 
        for(let j = 2; j <= Math.floor(Math.sqrt(i)); j++) {
          // i를 j로 나누어지면 isPrime변수를 false로 바꾸어준다.
            if(i % j === 0) {
                isPrime = false;
                break;
            }
        }
      // 소수인지 아닌지 확인하는 for문을 다 돌았을 때 isPrime이 true이면
      // 소수이므로 answer++를 해준다.
        if(isPrime === true) {
            answer++;
        }
      // isPrime이 false로 바뀐 경우도 있기 때문에 다시 true로 초기화 해준다.
        isPrime = true;
    }
    return answer;
}
profile
무럭무럭 자라는 중 ∙∙∙🌱🐣

0개의 댓글