十六、用函数求最大公约数和最小公倍数


<?php
/* 写2个函数,分别可以求得两个正整数的最大公约数和最小公倍数。
提示:
最大公约数就是能够同时整除该两个数的最大的那个。比如24和36的最大公约数是12
最小公倍数就是能够同时被该两个数整除的最小的那个。比如24和36的最小公倍数是72

*/
//第一种方法求最大公约数
 function gongyueshu($number1,$number2){
   $minNum=$number1<$number2?$number1:$number2;
   for($i=1;$i<=$minNum;$i++){    //第一种方法是利用从小到大的数能否被两个数整除
       if($number1%$i == 0 && $number2%$i == 0){
              $minResult=$i;
    }
   }
   return $minResult;
}
echo  "最大公约数是:".gongyueshu(24,36);
echo "<hr/>";
//第二种方法求最大公约数
 function gongyueshu2($number1,$number2){
   $minNum=$number1<$number2?$number1:$number2;
   for($i=$minNum;$i>=1;$i--){  //第二种方法利用从两数中最小的那个数开始,依次递减的顺序
       if($number1%$i == 0 && $number2%$i == 0){  //判断两个数能否同时被整除
              $minResult=$i;
    }
   }
   return $minResult;
 }
echo  "最大公约数是:".gongyueshu(24,48);
echo "<hr/>";
//第一种方法求最小公倍数
function gongbeishu($number1,$number2){
   $maxNum=$number1>$number2?$number1:$number2;   //判断两数中的最大的那个数
  for($i=$maxNum;$i>0;$i+=$maxNum){//依次进行$i+=$maxNum运算,这里是一个死循环,但肯定能找到并跳出
     if($i%$number1==0 && $i%$number2==0){ //找到的第一个这就是最小公倍数
      return $i;
  }
   }
}
echo "两个数的最大公倍数为:".gongbeishu(36,48);
echo "<hr/>";
//第二种方法求最小公倍数
//思路:由于求得最大公倍数,有数学运算:两个数的乘积=最大公倍数*最小公约数
function gongbeishu2($number1,$number2){
    return $number1*$number2/gongyueshu($number1,$number2);
}
echo "两个数的最大公倍数为:".gongbeishu(36,48);
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值