1. 程式人生 > >java中計算最大公約數的兩種方法

java中計算最大公約數的兩種方法

第一種:列舉法

這種方法需要計算機將每一個數都去試一遍才能找到最後的值

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
        Scanner in=new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        int s=1;
        int i;
        for(i=2;i<=a&&i<=b;i++)
        {
        if(a%i==0&&b%i==0)
        {
        s=i;
        }
        }
        System.out.println(a+"與"+b+"的最大公約數是"+s);
}

}

第二種:輾轉相除法
public class Main {


public static void main(String[] args) {
// TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        int oa=a;
        int ob=b;
        while(b!=0)
        {
        int r=a%b;
        a=b;
        b=r;
        }
        System.out.println(oa+"與"+ob+"的最大公約數是"+a);//在while過程中,a與b的值會發生改變,所以需要將a,b的值賦                                                                                                   給oa,ob
}
}