-
[JS] 소수 찾기이노베이션 캠프/3주차_알고리즘 2023. 6. 21. 13:27
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12921
문제 풀이
풀이1. 짝수 값 포함되어 있을 때
function isPrime(num) { // 짝수에 대한 처리 if (num % 2 === 0) { return num === 2 ? true : false; } // 짝수에 대한 처리 for (let i=3; i <= Math.floor(Math.sqrt(num)); i+=2) { if (num % i === 0) return false; } return true; } function solution(n) { let count = 0; // 1) 소수 개수를 관리할 변수 선인 및 할당 // for문 사용하여 2부터 n까지 숫자를 하나씩 증감시켜 확인 (1은 소수가 아니기 때문에 2부터 시작) for (let i=2; i <= n; i++) { if (isPrime(i)) count++; } return count; }
풀이2. 홀수 값만 있을 때
function isPrime(num) { for (let i=3; i <= Math.floor(Math.sqrt(num)); i+=2) { if (num % i === 0) return false; } return true; } function solution(n) { let count = 1; // 1) 변수 선언 및 할당: 2일 때는 소수이기 때문에 무조건 +1을 해준 상태에서 시작 // 2) for 사용, 2를 제외한 짝수는 소수가 아니기 때문에 홀수에 대해서만 확인할 예정 // 그래서 i는 3부터 시작하고 +2씩 증가시켜서 확인 for (let i=3; i <= n; i+=2) { if (isPrime(i)) count++; // 소수인 경우 증감 } return count; }
728x90'이노베이션 캠프 > 3주차_알고리즘' 카테고리의 다른 글
[JS] 비밀지도 (0) 2023.06.21 [JS] 폰켓몬 (0) 2023.06.21 [JS] 나머지가 1이 되는 수 찾기 (0) 2023.06.21 [JS] K번째수 (0) 2023.06.21 [JS] 최대공약수와 최소공배수 (0) 2023.06.21