문제출처


class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for(int i = 2; i <= n-1; i++){
            if(n % i == 1){
                answer = i;
                break;
            }
        }
        
        return answer;
    }
}



‘n % x = 1’을 만족하는 ‘x’를 찾아야 한다.

반복문을 사용하여 2부터 n-1까지의 수를 반복하여 나머지가 1인경우 멈추도록 구현하였다.

최악의 시나리오는 n이 소수일때 반복문이 n-2번 실행된다.

그러나 1,000,000 이하의 수에 대해서는 이 반복이 현대 컴퓨터에서 몇 밀리초 내에 완료 될 수 있다고 한다.

그러므로 이러한 계산 부담은 실제 애플리케이션에서 무시 할 수 있다.