package java算法;
/*
 * 输入两个数,求其最大公约数和最小公倍数
 * 
 */
import java.util.Scanner;

public class comonDivisor {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        int b=sc.nextInt();
        int first=a;
        int second=b;
        System.out.println("a="+a+" "+"b="+b);
        int temp;
        if(a<b){
            temp=a;
            a=b;
            b=temp;
        }
        
        while(b!=0){               //用辗转相除法求两个数的最大公约数
            temp=a%b;
            a=b;
            b=temp;
        }
        System.out.println("最大公约数为:"+a);
        System.out.println("最小公倍数:"+first*second/a);

    }

}

一.辗转相除法 

例1 。求两个正数8251和6105的最大公因数。 

(分析:辗转相除→余数为零→得到结果) 

解:8251=6105×1+2146 

显然8251与6105的最大公因数也必是2146的因数,同样6105与2146的公因数也必是8251的因数,所以8251与6105的最大公因数也是6105与2146的最大公因数。 

6105=2146×2+1813 

2146=1813×1+333 

1813=333×5+148 

333=148×2+37 

148=37×4+0 

则37为8251与6105的最大公因数。