辗转相除

//求最大公约数和最小公倍数辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数最小公倍数等于两整数的乘积除最大公约数。

    function gcd($n1, $n2){        

        if($n1 % $n2 == 0){

            return $n2;

        }

        return gcd($n2, $n1 % $n2);

    }

    $n1 = 24;

    $n2 = 30;

    if($n1 < $n2){

            $temp = $n1;

            $n1 = $n2;

            $n2 = $temp;

        }

    $v1 = gcd($n1 ,$n2);

    $v2 = ($n1 * $n2) / $v1;

    echo “<br />最大公因数 = ” . $v1 . ” 最小公倍数 = ” . $v2 . “<br />”;

点赞