[JavaScript][Programmers] 소수 찾기

조준형·2021년 9월 2일
0

Algorithm

목록 보기
119/142
post-thumbnail

🔎 소수 찾기

❓ 문제링크

https://programmers.co.kr/learn/courses/30/lessons/12921

📄 제출 코드

function solution(n) {
  var answer = 0;
  for (let i = 2; i <= n; i++) {
    answer += isPrime(i)
  }
  return answer;
}

function isPrime(num) {
    if( num%2 == 0) 
        return num==2 ? 1 : 0;

    for(let i=3; i<=Math.sqrt(num); i += 2) { 
        if( num % i == 0)
            return 0;
    }
	return 1; 
}

처음에 while과 for문을 이용해서 구했더니 시간초과 때문에 실패했다.
그래서 예전에 다른 소수찾기 문제에서 사용했던 방법으로 소수인지 체크하여 답을 도출했다.

1의 경우
1은 소수가 아니기 때문에 처음 isPrime을 호출하기 전 반복문에서 2부터 시작을 했다.

짝수인 경우
0을 리턴하는데 이때 2는 소수이기 때문에 return시에 조건문을 걸어 2면 1을 리턴하도록했다.

홀수인 경우
숫자의 제곱근까지 2씩 더해가며 0으로 나누어떨어지면 0을 리턴 아니라면 1을 리턴한다.

📘 참고

https://velog.io/@cjh951114/JavaScriptProgrammers-소수찾기

profile
깃허브 : github.com/JuneHyung

0개의 댓글