zoukankan      html  css  js  c++  java
  • 用PHP实现最小公倍数 2-200素数

    定义一个函数,该函数可以求两个正数的最小公倍数。——倍数就是能被一个数整除的数,最小公倍数就是能同时被这两个数整除的最小的那个。比如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 . "," ;
    }
    }
  • 相关阅读:
    无题
    生活真像小说
    草样年华
    Intentional Programming
    厌倦说话
    解释 Intentional Programming
    开始折腾iphone cdma 恢复,降级,刷机,越狱,手编,写号
    新手如何成为更好的图形设计师
    Grunt.js 初使用
    有抱负的程序员应看的10个TED演讲
  • 原文地址:https://www.cnblogs.com/liuqun/p/12655242.html
Copyright © 2011-2022 走看看