[프로그래머스] 소수 찾기 – 자바


프로그래머스 “소수 찾기” 문제 해결과정입니다.

소수 찾기

문제설명

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

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

제한사항

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

입출력 예

nresult
104
53

문제 해결과정

프로그래머스 코드

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의 제곱근

댓글 남기기

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.