[C] BOJ 2609번: 최대공약수와 최소공배수

ㅎㅎ·2023년 1월 12일
0

BOJ

목록 보기
7/65

BOJ 2609번: 최대공약수와 최소공배수

문제

두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.

출력

첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.


⭕️ 풀이 코드 - 성공

#include <stdio.h>

int main() {
  int n, m, temp, res=1;
  scanf("%d %d", &n, &m); // 10,000 이하 자연수

  // 최대공약수 구하기
  if(n > m) { temp = m; }
  else { temp = n; }
  for(int i=temp; i>=2; i--) { //
    if(n%i == 0 && m%i == 0) {
      res = i; // 최대공약수 저장
      break;
    }
  }
  printf("%d\n", res);

  // 최소공배수 구하기: N * M / 최대공약수
  res = n * m / res;
  printf("%d", res);
    
  return 0;
}
profile
Backend

0개의 댓글