求最大公约数和最小公倍数算法

时间:2021-05-05 00:30:33

使用scala语言求解两个数的最大公约数和最小公倍数

最大公约数

  //欧几里得算法(递归方式)  def gcdLoop(a:Long,b:Long): Long ={
var x=a
var y=b
while(y!=0){
val tmp=x%y
x=y
y=tmp
}
x
 }
//(非递归方式)  def gcd(a:Long,b:Long):Long={   if(b==0) a else gcd(b,a%b)} 

最小公倍数=两个数的乘积除以两个数的最大公约数

  def lcmLoop(a:Long,b:Long): Long ={    var x=a    var y=b    while(y!=0){      val tmp=x%y      x=y      y=tmp    }  a*b/x  }