카테고리 없음

[프로그래머스] 나머지가 1이 되는 수 찾기(0817)

곽경희 2022. 8. 18. 00:16

문제 설명

자연수 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를 넣어서 가장 작은 수를 구한다.