문제설명

 

 

소스코드

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int arr[] = new int[4];
		for(int i = 0; i < 4; ++i) arr[i] = in.nextInt();
		int a = (arr[0] * arr[3]) + (arr[1]* arr[2]);
		int b = arr[1] * arr[3];
		int minDivisor = gcd(a, b);
		System.out.println(a / minDivisor + " " + b / minDivisor);
	}
	public static int gcd(int a, int b)
	{
	    if(b == 0) return a;
	    else return gcd(b, a % b);
	}
}

 

설명

  • 입력받은 정수를 arr[0], ar[1], arr[2], ar[3]라고 하면
    a = (arr[0] * arr[3]) + (arr[1]* arr[2])
    b = arr[1] * arr[3];
  • a와 b의 최대공약수를 유클리드 호제법으로 구한다.
  • a와 b를 최대공약수로 나눈 값을 출력한다.