※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 26092번 문제인 수학적인 최소 공통 조상이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/26092
두 정점 번호
위 과정에서 정점을 거슬러올라가는 총 횟수는
아래는 제출한 소스코드이다.
#include <iostream>
#include <utility>
using namespace std;
typedef long long ll;
ll A, B;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> A >> B;
if (A < B) swap(A, B);
for (ll i = 2; i < 1000001; i++) {
if (A == B) {
cout << A;
return 0;
}
if (A % i == 0) A /= i;
else if (B % i == 0) B /= i;
else i++;
i--;
if (A < B) swap(A, B);
}
cout << 1;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 5479 // C++] Pyramid (0) | 2024.06.28 |
---|---|
[BOJ 21375 // C++] Konamikoden (0) | 2024.06.27 |
[BOJ 12946 // C++] 육각 보드 (0) | 2024.06.25 |
[BOJ 7587 // C++] Anagrams (0) | 2024.06.24 |
[BOJ 27738 // C++] 연산자 파티 (0) | 2024.06.23 |