두자리이상의 두 수를 각각 입력받아 최대공약수를 구함
class Fraction{
private int numerator;
private int denominator;
Fraction(int num, int denom){
numerator=num;
denominator=denom;
}
private int gcd(int x, int y){ //유클리드 호제법을 이용한 최대공약수 구하기
return (y!=0) ? gcd(y,x%y) : x;
}
private Fraction reduce(Fraction f){
int divisor;
divisor = gcd(f.numerator, f.denominator);
f.numerator = divisor;
f.denominator = divisor;
return f;
}
public Fraction add(Fraction f){
numerator = numerator;
denominator = denominator;
return reduce(this);
}
public String toString(){
String form = numerator+"";
return form;
}
}
public class FractionTest{
static int readInt() throws java.io.IOException{
char ch;
int n=0;
while(!Character.isDigit(ch=(char)System.in.read()));
do{ n=n*10+(ch-'0');
ch=(char)System.in.read();
}while (Character.isDigit(ch));
return n;
}
public static void main(String[] args)throws java.io.IOException{
int a;
int b;
System.out.print("두수를 입력해주세요 : ");
a = readInt(); b = readInt();
Fraction f1 = new Fraction(a,b);
Fraction f2 = new Fraction(a,b);
f1 = f1.add(f2);
System.out.println("최대공약수는 " + f1 + "입니다");
}
}