最簡單的求最大公約數和最小公倍數的方法

public class Main{
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Scanner scan = new Scanner(System.in);
  int n,m;
  while(scan.hasNext()){
   n = scan.nextInt();
   m = scan.nextInt();
   System.out.println(lcm(n,m));
  }
  scan.close();
  
 }
 
 //求最大公約數,展轉相除法
 static int gcd(int n,int m){
  
  if(n<=0||m<=0)
   return 0;
  int a = Integer.max(n, m);
  int b = Integer.min(n, m);
  
  while(b!=0){
   int temp = a;
   a = b;
   b = temp%b;
  }
  return a;
  
 }
 
 //最小公倍數*最大公約數=n*m
 static int lcm(int n,int m){
  int gcd = gcd(n,m);
  int product = n*m;
  return product/gcd;
  
 }
}
相關文章
相關標籤/搜索