백준

백준 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);
  }
}