문제 설명
자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
제한사항
- 3 ≤ n ≤ 1,000,000
코드
//프로그래머스
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int n) {
int answer = n;
for(int i=1; i<=n; i++){
if(n%i==1){
if(answer>i){
answer=i;
}
}
}
return answer;
}
//비주얼스튜디오
#include <stdio.h>
//[프로그래머스] 나머지가 1이 되는 수 찾기(0817)
int main(void) {
int n = 12;
int answer = n;
for (int i = 1; i <= n; i++) {
if (n % i == 1) {
if (answer > i) {
answer = i;
}
}
}
printf("%d", answer);
}
풀이
for문을 돌려 i가 1이고 n보다 작거나 같다면 i++해준다.
나머지가 1이 되는 가장 작은 수를 구하는 것이기 때문에 if문에 n % i == 1 조건을 넣어준다. if문을 한 번 더 사용해서 answer보다 i가 작다면 answer에 i를 넣어서 가장 작은 수를 구한다.