코드트리: 최대공약수와 최소공배수

2024. 4. 28. 23:00·PS

 

 


 

문제

n, m 입력받고, n과 m의 최소 공배수를 출력하는 프로그램을 작성하시오.

 

 

 

 

실행 결과

 

 

 

 

 

코드(c++)

#include <iostream>
using namespace std;

int gcd(int a, int b) {  // 최대공약수
	if (b == 0) {
		return a;
	}
	else {
		return gcd(b, a % b);
	}
}

int lcm(int a, int b) {  // 최소공배수
	return (a * b) / gcd(a, b);
}

int main() {
	int n, m;
	cin >> n >> m;
	cout << lcm(n, m);
	return 0;
}

 

 

 

 

코드 설명

1. 최대공약수 gcd

유클리드 알고리즘이란 두 개의 정수의 최대공약수를 결정하는 데 사용되는 알고리즘이다.

두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 호제법이라고도 부른다.

두 정수가 서로소(relatively prime)인 경우, 유일한 공통 양의 정수 인수는 1이라는 것을 이용한다.

과정: 두 수를 나눈다. 그런 다음 나머지를 취하여 이전의 두 수 중 작은 값으로 대체한다.

이 과정을 나머지가 0이 될 때까지 계속 반복한다.

 

 

2. 최소공배수 lcm

a와 b의 최소공배수는 두 수의 곱 나누기 a와 b의 최대공약수임을 이용한다.

두 수의 곱을 하면 최대공약수가 공통으로 곱해져 있으므로

최대공약수로 한 번 나눠주면 두 수의 최소공배수를 얻을 수 있다.

 

 

 


 

문제 출처:

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

저작자표시 (새창열림)

'PS' 카테고리의 다른 글

백준 2869번: 달팽이는 올라가고 싶다  (0) 2024.05.03
백준 1259번: 팰린드롬수  (0) 2024.04.29
백준 2747번: 피보나치 수  (0) 2024.04.27
백준 2444번: 별 찍기 - 7  (0) 2024.04.26
백준 2231번: 분해합  (0) 2024.04.24
'PS' 카테고리의 다른 글
  • 백준 2869번: 달팽이는 올라가고 싶다
  • 백준 1259번: 팰린드롬수
  • 백준 2747번: 피보나치 수
  • 백준 2444번: 별 찍기 - 7
abyss-s
abyss-s
프론트엔드 공부합니다.
  • abyss-s
    abyss-s의 블로그입니다.
    abyss-s
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • Web (16)
        • JavaScript (6)
        • TypeScript (1)
        • React (5)
        • Vue (0)
        • Storybook (1)
        • Next.js (1)
      • Backend & Infra (8)
        • Database (3)
        • Node.js (2)
        • SpringBoot (1)
      • PS (71)
      • CS (30)
        • OS (13)
        • Structure & Algorithm (5)
        • Network (10)
        • 정보처리기사 (2)
      • Language (18)
        • OOP (1)
        • JAVA (13)
        • C++ (4)
      • Activities (12)
        • 멋쟁이 사자처럼 (2)
        • OSSCA (3)
        • LG U+ URECA (3)
        • Project (2)
      • AI (0)
      • Git & Github (5)
      • Notion (1)
      • IT (4)
      • Statistics (11)
      • Book (4)
      • Diary (1)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
    • 백준
    • 트위터
  • 공지사항

    • abyss-s의 티스토리에 오신 것을 환영합니다.
  • 인기 글

  • 태그

    자바기반응용프로그래밍
    생활코딩
    코드트리
    통계학
    Java
    DP
    백준
    Python
    OS
    네트워크
    파이썬
    BFS
    C++
    JavaScript
    React
    자바스크립트
    BAEKJOON
    운영체제
    그리디
    github
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
abyss-s
코드트리: 최대공약수와 최소공배수
상단으로

티스토리툴바