요거는 유클리드 호제법이네용...

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Uclide {

 public static void main(String[] args) throws IOException{
  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  System.out.print("첫번째수 : ");
  String a = in.readLine();
  System.out.print("두번째수 : ");
  String b = in.readLine();
  int m = Integer.parseInt(a);
  int n = Integer.parseInt(b);
  int l = m*n;
  int gcm = 0;
  int lcm = 0;
 
  while(true){
   if (m > n) { //큰수에서 작은수를 계속 빼값니다.
    m = m - n;
   }else{
    if (n > m) {
     n = n - m;
    }else{
     gcm = m; //최대공약수는 두수가 같아졌을때의 값
     lcm = l/m; //최소공배수는 두수를 곱한 값에다 최대공약수로 나눠주면 되지요...
     break;
    }
   }
  }
  System.out.println("최대공약수 : "+gcm);
  System.out.println("최소공배수 : "+lcm);
 }
}




AND