알고리즘(백준 등) 공부

SWEA 17937. 큰 수의 최대공약수

posite 2026. 4. 30. 11:43

두 정수 사이의 모든 수들의 최대공약수를 구하는 문제이다.

 

구간의 길이가 2 이상이면 공통으로 나눌 수 있는 수는 1 밖에 없으므로 최대공약수는 그 어떤 범위라도 1이다. 구간의 양끝이 같은 숫자라면 해당 숫자가 최대공약수이다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();

        for (int tc = 1; tc <= T; tc++) {
            sb.append('#').append(tc).append(' ');
            StringTokenizer st = new StringTokenizer(br.readLine());
            String start = st.nextToken(), end = st.nextToken();
            if(end.equals(start)) {
                sb.append(end).append('\n');
            } else {
                sb.append("1").append('\n');
            }
        }
           
        br.close();
        System.out.print(sb);
    }
}