프로그래머스 “소수 찾기” 문제 해결과정입니다.
소수 찾기
문제설명
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.
소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
(1은 소수가 아닙니다.)
제한사항
- n은 2이상 1000000이하의 자연수입니다.
입출력 예
| n | result |
|---|---|
10 | 4 |
5 | 3 |
문제 해결과정
프로그래머스 코드
class Solution {
public int solution(int n) {
int answer = 0;
for(int i = 2; i <= n; i++) {
boolean isPrime = true;
for(int j = 2; j <= Math.sqrt(i); j++) {
if(i % j == 0) {
isPrime = false;
break;
}
}
if(isPrime) answer++;
}
return answer;
}
}
1은 소수가 아니고 2는 소수에 포함되기 때문에 반복문의 시작을 2부터 n까지 잡는다. 소수인지 아닌지 확인하기 위해 bool 타입의 변수를 하나 선언해준다. 2부터 i의 제곱근까지 반복하며 소수인지 아닌지 확인한다. 만약 소수인 것이 확인되면 answer의 수를 하나 증가시킨다.
사용된 메소드
| 메소드 | 설명 |
| Math.sqrt(i); | i의 제곱근 |