欧几里德算法--求最大公约数

来源:互联网 发布:天猫魔盒软件官方网站 编辑:程序博客网 时间:2024/05/18 12:04
欧几里德算法又称为辗转相除法,两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。如44和8的最大公约数是4,而44-8=36和8的最大公约数也是4.
/** * @author Bangwen Chen *Description:求最大公约数,同样的思想可用于求两数是否互素(即m和n的最大公约数是否为1) * 2013年9月30日 */public class EuclideanAlgorithm {public static void main(String[] args) {System.out.println(new EuclideanAlgorithm().RecursiveMethod(44,8));System.out.println(new EuclideanAlgorithm().ModMethod(44,8));}public int RecursiveMethod(int m,int n ){if(n==0){return n;}return RecursiveMethod(n,m%n);}public int ModMethod(int m,int n){int temp;while(n != 0){temp = n;n = m%n;m = temp;}return m;}}


原创粉丝点击