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

2021. 1. 10. 18:45·Algorithm/Solution
728x90

2609번: 최대공약수와 최소공배수 (acmicpc.net)

 

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

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

www.acmicpc.net


난이도 : 실버 5

 

풀기 전 알아야 할 개념 :

최대공약수와 최소공배수의 개념을 알고 그냥 풀 수도 있기는 한데요,

최대공약수는 두 수를 1부터 N까지 계속 나누면서 공통적으로 나머지가 0이 나오는 값중에 가장 큰 값이고,

최소공배수는 두 수를 최대 공약수로 나눠서 둘이 곱해준 값입니다.(왜냐면 두 수의 최대공약수로 나누면 그 수가 서로소가 가 되기 때문에, 서로소를 곱한 값이 최소 공배수가 되기 때문)

 

근데 이렇게 하면 시간복잡도가 유클리드호제법을 이용한 것보다 크다고 합니다.

그래서 유클리드 호제법을 이용하여 푸는 것이 더 효율적입니다.

 

유클리드 호제법 <-[Algorithm] 유클리드 호제법 - 최대공약수(GCD) 구하기 (tistory.com)

 

[Algorithm] 유클리드 호제법 - 최대공약수(GCD) 구하기

유클리드 호제법이란? 유클리드 알고리즘(Euclidean algorithm)은 2개의 자연수의 최대공약수를 구하는 알고리즘입니다. 비교대상의 두 개의 자연수 a와 b에서(단 a>b) a를 b로 나눈 나머지를 r이라고 했

coding-factory.tistory.com

이 글 참고하시면 잘 이해되실 거같네요 저도 이거보고 이해했습니다!!

 

답 :

#include <iostream>
int gcd(int a, int b) {
	while (b != 0) {
		int r = a % b;
		a = b;
		b = r;
	}
	return a;
}

int main() {
	int a, b;
	scanf("%d %d", &a, &b);
	printf("%d\n", gcd(a, b));
	printf("%d", a * b / gcd(a, b));
}
728x90
저작자표시 비영리 (새창열림)

'Algorithm > Solution' 카테고리의 다른 글

[C++] 2960번 에라토스테네스의 체  (0) 2021.01.17
[C++] 2167번 2차원 배열의 합  (0) 2021.01.17
[C++] 11944번 NN  (0) 2021.01.10
[C++] 1100번 하얀 칸  (0) 2021.01.10
[C++] 7600 문자가 몇갤까  (0) 2021.01.10
'Algorithm/Solution' 카테고리의 다른 글
  • [C++] 2167번 2차원 배열의 합
  • [C++] 11944번 NN
  • [C++] 1100번 하얀 칸
  • [C++] 7600 문자가 몇갤까
BeNI
BeNI
코딩하는 블로그
  • BeNI
    코딩못하는컴공
    BeNI
  • 전체
    오늘
    어제
    • Menu (253)
      • My profile (1)
      • 회고 | 후기 (8)
      • Frontend (65)
        • Article (11)
        • Study (35)
        • 프로그래머스 FE 데브코스 (19)
      • Backend (0)
      • Algorithm (58)
        • Solution (46)
        • Study (12)
      • Major (111)
        • C&C++ (23)
        • Java (20)
        • Data Structure (14)
        • Computer Network (12)
        • Database (15)
        • Linux (6)
        • Architecture (3)
        • Lisp (15)
        • OS (1)
        • Security (2)
      • etc (2)
  • 링크

    • 깃허브
    • 방명록
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    데브코스
    백준
    Algorithm
    자료구조
    lisp
    리팩토링
    파일처리
    react
    C++
    프로그래머스
  • hELLO· Designed By정상우.v4.10.2
BeNI
[C++] 2609번 최대공약수와 최소공배수
상단으로

티스토리툴바