[백준] 2609번: 최대공약수와 최소공배수 C++로 풀어보기

2023. 7. 13. 01:53·Algorithm/Baekjoon(C++)

2609번 설명

어떻게 풀까? (문제를 풀고 처음 든 생각)

최대공약수와 최소공배수라는 단어를 진짜 오랜만에 듣는다. 어떻게 구하는지도 기억이 가물가물하다.

소인수분해를 해서 나온 소인수들을 벡터에 저장하고, 최대공약수는 벡터에 저장해놓은 소인수들을 곱한 값으로,

최대공배수는 최대공약수에 소인수들로 나눠진 두 수를 곱해서 구하면 될 것 같다.

 

코드
#include <bits/stdc++.h>
using namespace std;


int main() {
	int a, b;
	vector <int> v;
	int max, min;
	int cnt = 1;
	
	cin >> a >> b;

	int x = 2;

	while (1) {

		if (a % x == 0 && b % x == 0) { // 공약수를 찾았으면
			a = a / x;
			b = b / x;
			v.push_back(x);
			x = 2;
		}
		else {
			x++;
		}

		if (x > a && x > b) {
			break;
		}
	}
		

	for (auto it = v.begin(); it != v.end(); it++) {
		cnt = cnt * (*(it));
	}

	min = cnt;
	max = cnt * a * b;

	cout << min << '\n';
	cout << max;

		
}

 

결과

2609번 결과

 

후기

학창시절의 추억이 떠오르던 문제였다. 코드를 보면 x가 a와 b보다 크면 break를 걸었는데, 다른 조건으로도 break를 걸 수 있을 것 같다는 생각이 들었다.

저작자표시 비영리 변경금지 (새창열림)

'Algorithm > Baekjoon(C++)' 카테고리의 다른 글

[백준] 1874번: 스택 수열 C++로 풀어보기  (0) 2023.07.17
[백준] 5397번: 키로거 C++로 풀어보기  (0) 2023.07.15
[백준] 1919번: 애너그램 만들기 C++로 풀어보기  (0) 2023.07.15
[백준] 27866번: 문자와 문자열 C++로 풀어보기  (0) 2023.07.13
[백준] 4153번: 직각삼각형 C++로 풀어보기  (0) 2023.07.01
'Algorithm/Baekjoon(C++)' 카테고리의 다른 글
  • [백준] 5397번: 키로거 C++로 풀어보기
  • [백준] 1919번: 애너그램 만들기 C++로 풀어보기
  • [백준] 27866번: 문자와 문자열 C++로 풀어보기
  • [백준] 4153번: 직각삼각형 C++로 풀어보기
퀵차분
퀵차분
웹 프론트엔드 개발자를 꿈꾸고 있습니다 :)
  • 퀵차분
    QC's Devlog
    퀵차분
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • Frontend (28)
        • HTML, CSS (7)
        • Javascript (3)
        • React (11)
        • Typescript (2)
        • Next.js (4)
      • Node.js (3)
      • Study (40)
        • Modern JS Deep Dive (13)
        • SQL (1)
        • Network (1)
        • 프롬프트 엔지니어링 (4)
        • 인공지능 (9)
        • 시스템프로그래밍 (11)
        • 선형대수학 (1)
      • Intern (4)
      • KUIT (20)
      • Algorithm (48)
        • Baekjoon(C++) (26)
        • Programmers(JavaScript) (22)
      • 우아한테크코스(프리코스) (4)
      • Project (7)
        • PROlog (4)
        • Nomadcoder (2)
      • 생각 (4)
      • Event (7)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    백준
    프롬프트 엔지니어링
    알고리즘
    typescript
    프로그래머스
    프로그래머스 자바스크립트
    프론트엔드
    티스토리챌린지
    HTML
    음악추천
    KUIT
    인공지능
    리액트
    시스템프로그래밍
    오블완
    타입스크립트
    react
    javascript
    next.js
    자바스크립트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
퀵차분
[백준] 2609번: 최대공약수와 최소공배수 C++로 풀어보기
상단으로

티스토리툴바