나머지가 1이 되는 수 찾기
posted on 26 Jan 2024 under category java in series algorithm
문제 설명
자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
제한 조건
3 ≤ n ≤ 1,000,000
입출력 예
n | return |
---|---|
10 | 3 |
12 | 11 |
입출력 예 #1
10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.
입출력 예 #2
12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.
class Solution {
public int solution(int n) {
int answer = 0;
for(int i = 2; i <= n; i++) {
if(n % i == 1) {
answer = i;
break;
}
}
return answer;
}
}
n의 최소값이 3부터 시작하므로 n = 3일 때, return = 2이므로
for문 초기 i값을 2부터 n보다 작거나 같을때까지(if문에서 걸러지므로 작거나 같을때까지해도 상관없다고 판단함) 설정해준다.
그뒤로 if문에서 n을 i로 나누었을 때 1이 남으면 반복을 중단하고 answer값을 반환한다.