亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

php計算兩個整數的最大公約數常用算法小結

2024-05-04 23:31:56
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了php計算兩個整數的最大公約數常用算法,實例總結了求最大公約數的三種常用方法,具有一定參考借鑒價值,需要的朋友可以參考下
 

本文實例講述了php計算兩個整數的最大公約數常用算法。分享給大家供大家參考。具體如下:

 

復制代碼代碼如下:
<?php
//計時,返回秒
function  microtime_float ()
{
    list( $usec ,  $sec ) =  explode ( " " ,  microtime ());
    return ((float) $usec  + (float) $sec );
}
//////////////////////////////////////////
//歐幾里得算法
function ojld($m, $n) {
    if($m ==0 && $n == 0) {
        return false;
    }
    if($n == 0) {
        return $m;
    }
    while($n != 0){
        $r = $m % $n;
        $m = $n;
        $n = $r;
    }
    return $m;
}
//////////////////////////////////////////
//基于最大公約數的定義
function baseDefine($m, $n) {
    if($m ==0 && $n == 0) {
        return false;
    }
    $min = min($m, $n);
    while($min >= 1) {
        if($m % $min == 0){
            if($n % $min ==0) {
                return $min;
            }
        }
        $min -= 1;
    }
    return $min;
}
////////////////////////////////////////////
//中學數學里面的計算方法
function baseSchool($m, $n) {
    $mp = getList($m); //小于$m的全部質數
    $np = getList($n); //小于$n的全部質數
    $mz = array();  //保存$m的質因數
    $nz = array();  //保存$n的質因數
    $mt = $m;
    $nt = $n;
    //m所有質因數
    //遍歷m的全部質數,當能夠被m整除時,繼續下一次整除,知道不能被整除再取下一個能夠被m整除
    //的質數,一直到所有出現的質數的乘積等于m時停止
    foreach($mp as $v) {
        while($mt % $v == 0) {
            $mz[] = $v;
            $mt = $mt / $v;
        }
        $c = 1;
        foreach($mz as $v) {
            $c *= $v;
            if($c == $m){
                break 2;
            }
        }
    }
    //n所有質因數
    foreach($np as $v) {
        while($nt % $v == 0) {
            $nz[] = $v;
            $nt = $nt / $v;
        }
        $c = 1;
        foreach($nz as $v) {
            $c *= $v;
            if($c == $n){
                break 2;
            }
        }
    }
    //公因數
    $jj = array_intersect($mz, $nz); //取交集
    $gys = array();
    //取出在倆數中出現次數最少的因數,去除多余的。
    $c = 1; //記錄數字出現的次數
    $p = 0; //記錄上一次出現的數字
    sort($jj);
    foreach($jj as $key => $v) {
        if($v == $p) {
            $c++;
        }
        elseif($p != 0) {
            $c = 1;
        }
        $p = $v;
        $mk = array_keys($mz, $v);
        $nk = array_keys($nz, $v);
        $k = ( count($mk) > count($nk) ) ? count($nk) : count($mk);
        if($c > $k) {
            unset($jj[$key]);
        }
    }
    $count = 1;
    foreach($jj as $value) {
        $count *= $value;
    }
    return $count;
}
//求給定大于等于2的整數的連續質數序列
//埃拉托色尼篩選法
function getList($num) {
    $a = array();
    $a = array();
    for($i = 2; $i <= $num; $i++) {
        $a[$i] = $i;
    }
    for( $i = 2; $i <= floor( sqrt($num) ); $i++ ) {
        if($a[$i] != 0) {
            $j = $i * $i;
            while($j <= $num) {
                $a[$j] = 0;
                $j = $j + $i;
            }
        }
    }
    $p = 0;
    for($i = 2; $i <= $num; $i++) {
        if($a[$i] != 0) {
            $L[$p] = $a[$i];
            $p++;
        }
    }
    return $L;
}
/////////////////////////////////////
//test
$time_start  =  microtime_float ();
//echo ojld(60, 24);       //0.0000450611 seconds
//echo baseDefine(60, 24); //0.0000557899 seconds
echo baseSchool(60, 24);   //0.0003471375 seconds
$time_end  =  microtime_float ();
$time  =  $time_end  -  $time_start ;
echo '<br>' . sprintf('%1.10f', $time) . 'seconds';

 

希望本文所述對大家的php程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
性色av一区二区三区在线观看| 2019中文字幕免费视频| 国产91久久婷婷一区二区| 欧美日韩中文字幕日韩欧美| 91沈先生作品| 亚洲美女福利视频网站| 亚洲午夜国产成人av电影男同| 国产一区欧美二区三区| 91精品视频在线播放| 国产欧美精品一区二区| 亚洲精品午夜精品| 国产精品高潮在线| 亚洲sss综合天堂久久| 国产999精品久久久| 91美女福利视频高清| 亚洲999一在线观看www| 亚洲欧美视频在线| 国产成人在线视频| 日韩经典中文字幕在线观看| 欧美中文字幕视频在线观看| 亚洲福利小视频| 高跟丝袜一区二区三区| yw.139尤物在线精品视频| 一区二区成人精品| 久久99国产精品自在自在app| 久久色精品视频| 久久亚洲春色中文字幕| 亚洲欧美国产另类| 九九久久国产精品| 亚洲精品美女久久久| 国产69精品99久久久久久宅男| 日韩视频中文字幕| 51精品国产黑色丝袜高跟鞋| 成人国产精品免费视频| 亚洲一区二区三区xxx视频| 伦伦影院午夜日韩欧美限制| 精品日韩美女的视频高清| 亚洲国产精品yw在线观看| 国产欧美在线观看| 国产美女高潮久久白浆| 一区二区成人精品| 日韩中文字幕在线观看| 欧美成人精品xxx| 日韩欧美中文字幕在线播放| 日韩欧美亚洲成人| 欧美极品在线视频| 国产精品久久久久久久久久久久| 美女精品久久久| 亚洲精品国偷自产在线99热| 亚洲网址你懂得| 欧美性猛交xxxx乱大交3| 日本一区二区在线免费播放| 色综合伊人色综合网站| 亚洲视频精品在线| 欧美贵妇videos办公室| 精品国产一区二区三区久久狼黑人| 国产精品一区二区三区久久| 亚洲欧美日韩国产精品| 奇门遁甲1982国语版免费观看高清| 亚洲第一区第二区| 久久久成人的性感天堂| 中文精品99久久国产香蕉| 91精品国产综合久久久久久蜜臀| 亚洲精品黄网在线观看| 久久91亚洲精品中文字幕奶水| 国产做受高潮69| 色综合老司机第九色激情| 日本欧美一二三区| 欧美乱大交做爰xxxⅹ性3| 亚洲国产毛片完整版| 亚洲欧美日韩第一区| 日本成人黄色片| 欧美激情精品久久久久久久变态| 国产日韩在线精品av| 精品亚洲一区二区三区在线播放| 欧美乱人伦中文字幕在线| 欧美怡红院视频一区二区三区| 亚洲视频视频在线| 欧美一级bbbbb性bbbb喷潮片| 在线观看国产精品91| 亚洲字幕一区二区| 欧美一区亚洲一区| 国内自拍欧美激情| 欧美成人免费在线观看| 欧美在线性视频| 精品高清一区二区三区| 国产91在线高潮白浆在线观看| 亚洲精品久久久久久下一站| 日韩av不卡电影| 精品视频久久久久久| 欧美影院久久久| 久久久精品999| 久久久久久久成人| 欧美色欧美亚洲高清在线视频| 久久久久免费精品国产| 国产精品第一第二| 色午夜这里只有精品| 久久91超碰青草是什么| 日韩中文字幕免费视频| 亚洲国产精品一区二区久| 日韩成人高清在线| 成人激情av在线| 欧美大片大片在线播放| 日韩精品在线免费观看| 欧美高清videos高潮hd| 亚洲精品av在线| 久久99久久99精品免观看粉嫩| 精品亚洲一区二区三区在线观看| 久久视频在线直播| 欧美大片va欧美在线播放| 永久免费精品影视网站| 久久夜色精品亚洲噜噜国产mv| 日本免费在线精品| 国产成人精品一区二区| 日韩av免费在线观看| 国产视频精品久久久| 欧美色图在线视频| 色妞一区二区三区| 成人免费视频在线观看超级碰| 久久99久久久久久久噜噜| 欧美性猛交xxxx久久久| 色偷偷av一区二区三区| 日韩精品在线影院| 亚洲国产天堂久久综合网| 日韩有码在线播放| 日韩午夜在线视频| 91精品国产高清自在线看超| 亚洲综合精品伊人久久| 欧美国产日韩精品| 国产精品久久久久久久久| 午夜精品一区二区三区在线播放| 成人动漫网站在线观看| 亚洲性夜色噜噜噜7777| 国产精品丝袜白浆摸在线| 久色乳综合思思在线视频| 性欧美xxxx| 国a精品视频大全| 精品自拍视频在线观看| 日本精品免费一区二区三区| 国产精品美女主播在线观看纯欲| 亚洲精品久久久久久下一站| 久久久精品视频成人| 国产婷婷成人久久av免费高清| 欧美视频第一页| 日韩中文字幕视频在线| 日韩av影视综合网| 亚洲v日韩v综合v精品v| 亚洲自拍偷拍色图| 国产成人亚洲综合91精品| 亚洲第一福利网| 欧美另类xxx| 亚洲人成五月天| 亚洲精品白浆高清久久久久久| 久久中文久久字幕| 成人综合国产精品| 亚洲欧洲xxxx| 国产精品久久久久久网站| 久久躁日日躁aaaaxxxx| 热99久久精品| 国产精品成人免费电影| 国产成人免费av| 亚洲乱码国产乱码精品精天堂| 亚洲男人天堂视频| 久久久久久久久久久免费|