茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    php計(jì)算兩個整數(shù)的最大公約數(shù)常用算法小結(jié)
    來源:易賢網(wǎng) 閱讀:940 次 日期:2015-03-09 16:00:12
    溫馨提示:易賢網(wǎng)小編為您整理了“php計(jì)算兩個整數(shù)的最大公約數(shù)常用算法小結(jié)”,方便廣大網(wǎng)友查閱!

    這篇文章主要介紹了php計(jì)算兩個整數(shù)的最大公約數(shù)常用算法,實(shí)例總結(jié)了求最大公約數(shù)的三種常用方法,具有一定參考借鑒價值,需要的朋友可以參考下

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

    代碼如下:

    <?php

    //計(jì)時,返回秒

    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;

    }

    //////////////////////////////////////////

    //基于最大公約數(shù)的定義

    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;

    }

    ////////////////////////////////////////////

    //中學(xué)數(shù)學(xué)里面的計(jì)算方法

    function baseSchool($m, $n) {

    $mp = getList($m); //小于$m的全部質(zhì)數(shù)

    $np = getList($n); //小于$n的全部質(zhì)數(shù)

    $mz = array(); //保存$m的質(zhì)因數(shù)

    $nz = array(); //保存$n的質(zhì)因數(shù)

    $mt = $m;

    $nt = $n;

    //m所有質(zhì)因數(shù)

    //遍歷m的全部質(zhì)數(shù),當(dāng)能夠被m整除時,繼續(xù)下一次整除,知道不能被整除再取下一個能夠被m整除

    //的質(zhì)數(shù),一直到所有出現(xiàn)的質(zhì)數(shù)的乘積等于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所有質(zhì)因數(shù)

    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;

    }

    }

    }

    //公因數(shù)

    $jj = array_intersect($mz, $nz); //取交集

    $gys = array();

    //取出在倆數(shù)中出現(xiàn)次數(shù)最少的因數(shù),去除多余的。

    $c = 1; //記錄數(shù)字出現(xiàn)的次數(shù)

    $p = 0; //記錄上一次出現(xiàn)的數(shù)字

    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的整數(shù)的連續(xù)質(zhì)數(shù)序列

    //埃拉托色尼篩選法

    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程序設(shè)計(jì)有所幫助。

    更多信息請查看IT技術(shù)專欄

    更多信息請查看網(wǎng)絡(luò)編程
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報班

    • 報班類型
    • 姓名
    • 手機(jī)號
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)