백준
백준 1850 최대공약수(Java)
Park DJ
2023. 2. 20. 11:47
https://www.acmicpc.net/problem/1850
1850번: 최대공약수
모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A
www.acmicpc.net
해석 및 팁
이 문제는 주어진 a와 b의 최대공약수를 찾은 후에 그 수만큼 1을 출력하면 되는 문제입니다. 입력되는 수는 2^63보다 작으로 int대신 long을 사용해야 합니다.
Java 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
long a = sc.nextLong();
long b = sc.nextLong();
long num = gcd(a, b);
for(long i = 0; i < num; i++) sb.append(1);
System.out.println(sb);
}
public static long gcd(long a, long b) {
if(b == 0) return a;
else return gcd(b, a % b);
}
}