[Silver I] 최대공약수 - 1850
성능 요약
메모리: 20048 KB, 시간: 240 ms
분류
유클리드 호제법, 수학, 정수론
제출 일자
2023년 11월 26일 10:38:16
문제 설명
모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오.
예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A가 111이고, B가 111111인 경우에는 최대공약수가 111이다.
입력
첫째 줄에 두 자연수 A와 B를 이루는 1의 개수가 주어진다. 입력되는 수는 263보다 작은 자연수이다.
출력
첫째 줄에 A와 B의 최대공약수를 출력한다. 정답은 천만 자리를 넘지 않는다.
1. 자리수끼리의 최대공약수를 구한 뒤 그 값만큼 1을 출력하면 되는 문제
2. 입력되는 수가 2^63승보다 작은 자연수이다. int는 2^32까지만 표현 가능하니까 Long으로 선언 하면 문제가 없음
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
long n = GCD(Long.parseLong(st.nextToken()),Long.parseLong(st.nextToken()));
System.out.println("1".repeat((int)n));
}
private static long GCD(long a, long b) {
while(b != 0){
long tmp = a % b;
a = b;
b = tmp;
}
return a;
}
}
'알고리즘 - Baekjoon > Silver' 카테고리의 다른 글
[백준] 1074번 : Z Silver1(실버1) - JAVA[자바] (0) | 2023.11.26 |
---|---|
[백준] 9613번 : GCD합 Silver4(실버4) - JAVA[자바] (1) | 2023.11.26 |
[백준] 1699번 : 제곱수의 합 Silver2(실버2) - JAVA[자바] (1) | 2023.11.25 |
[백준] 11004번 : K번째 수 Silver5(실버 5) - JAVA[자바] (0) | 2023.11.24 |
[백준] 11652번 : 카드 Silver4(실버4) - JAVA[자바] (0) | 2023.11.24 |