Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Nov 26, 2025

🧷 문제 링크

https://www.acmicpc.net/problem/27521

🧭 풀이 시간

60분

👀 체감 난이도

✏️ 문제 설명

쿼리 Q개를 처리해보자.

  • 최대공약수가 G이고 최소공배수가 L인 두 정수 (a,b) 중에서 a+b가 가장 작은 때의 a와 b를 출력

🔍 풀이 방법

두 정수 a, b에 대해, 서로소인 두 정수 p, q가 존재해 a = pG, b = qG, L = pqG를 만족함.

a+b를 최소화하는 것이 목표.

tie breaker는 p < q로 잡으면 unique가 보장될 듯?

p, q가 서로소려면, L/G의 소인수분해 결과에서 같은 소인수를 p,q가 나눠가지면 안 됨.
즉, 소인수분해 결과에서 나온 소인수 개수를 X라고 하면, O(2^X) 가능.
그리고 X <= 15임...
소인수 목록을 반 가르고 mitm 하면 O((X/2) * 2^(X/2))에 가능.

⏳ 회고

ez

@oncsr oncsr self-assigned this Nov 26, 2025
@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Nov 26, 2025
@ShinHeeEul ShinHeeEul merged commit 2824579 into main Nov 26, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants