欧几里德算法
一:简介
欧几里德算法又称辗转相除法,是指用于计算两个正整数a,b的最大公约数的算法,古希腊数学家欧几里德在其著作《The Elements》中最早描述了这种算法,所以被命名为欧几里德算法。应用领域有数学和计算机两个方面。计算公式gcd(a,b) = gcd(b,a mod b)。
二:算法的简单演示
假如需要求 1997 和 615 两个正整数的最大公约数,用欧几里德算法,是这样进行的:
当被加的数为 0 时,就得出了 1997 和 615 的最大公约数 1。
三:算法编程实现
(1)非递归实现
public class Main{
public static void main(String[] args)
{
int a=1997;
int b=615;
int r=0;
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
System.out.println(a);
}
}
(二)递归实现
public class Main{
public static int divisor(int a,int b)
{
if(a%b==0)
{
return b;
}
else
{
return divisor(b,a%b);
}
}
public static void main(String[] args)
{
int a=1997;
int b=615;
System.out.println(divisor(a,b));
}
}