php怎么求最小公倍数,用PHP实现最小公倍数

定义一个函数,该函数可以求两个正数的最小公倍数。――倍数就是能被一个数整除的数,最小公倍数就是能同时被这两个数整除的最小的那个。比如6和8的最小公倍数是24,15和20的最小公倍数是60。

解题思路:

提示1:本题是一个典型数学应用的计算机解决方案,利用的是公倍数的基本概念加上程序算法中的循环递增机制来实现。当然,本题还要求做到更高一层,那就是将求解过程包装成函数,这样为以后的同类问题提供了便捷的解决方式。

提示2:首先,根据题意,自然是需要定义一个函数,并且带2个参数,代表要求解最小公约数的两个正整数。

提示3:然后,函数中的核心代码就是:从其中一个数开始进行遍历循环,直到两个数的乘积为止,去进行整除,找出能同时进行整除的第一次出现的那个,就是结果。

提示4:但我们考虑更高效率的话,我们需要先找出两个数中的较大的那个(同时也找出更小的那个),然后,我们的循环,直接从更大的那个开始,并且递增也是以该较大数的倍数进行。这样做的结果,我们既可以做到更少的循环次数,也可以只去对更小的那个数进行取模运算。如果发现更小的数可以整除,那该数就是我们要找的数了。 function Gongbeishu( $n, $m ){ if(!is_int($n) || !is_int($m)){ return false; //不是整数,返回false } if($n <= 0 || $m <= 0){ return false; //不是正整数,返回false } $max = $n >= $m ? $n : $m; $min = $n <= $m ? $n : $m; for($i = $max; $i <= $max * $min; $i+= $max){ if( $i % $min == 0 ){ return $i; //这就是要求的最小公倍数 } } }

定义一个函数,该函数能够判断一个数字是否是一个素数(也叫质数),是就返回true,否则就返回false。并利用该函数的功能,输出2-200之间的所有素数。

注:素数就是只能被1和它本身整除的数。

解题思路:

提示1:此题是一个典型的函数应用题,其模式是:先定义一个具有某种功能函数,而后,在应用的需求代码中,调用该函数以获得结果。本题的代码分两块:函数定义代码,以及2~200的循环判断代码。

提示2:先定义一个能够判断一个数字是否是素数的函数。素数的判断依据是:从1到该数本身依次循环,记录能整除它的数的个数,如果最后只有2个能整除,则该数就是素数。整个过程,在函数中判断个数后,就可以返回真或假。

提示3:再实现一个基本的2到200的循环,循环中,对每一个数字传递给前述定义的函数,该函数就可以判断该数字是否一个素数,如果是,就输出,否则就继续下一轮。 function isLeapYear( $num ){ if(is_numeric( $num ){ //先判断是否是一个数字 //然后才判断是否是一个素数 $count = 0; //用于记录能够整除的个数 for( $i = 1; $i <= $num; $i++){ if($num % $i == 0){ //能整除 $count++; //就计数加1 } } if($count == 2){ //只有两个能整除,也就是1和它自身,就是素数 return true; } else{ return false; } } else{ return false; } } for($i = 2; $i <= 200; $i++){ if( isLeapYear( $i ) == true ) { echo $i . "," ; } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值