PHP中怎么返回給定兩數(shù)間的全部公因數(shù)和最大公因數(shù)

PHP中怎么返回給定兩數(shù)間的全部公因數(shù)和最大公因數(shù),很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

為清江浦等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及清江浦網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、清江浦網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

1、分別獲取兩個整數(shù)a和b間因數(shù)(這個在上文PHP循環(huán)學(xué)習(xí)八中有詳細(xì)介紹),然后將這些因數(shù)分別存到一個數(shù)組中。這里以數(shù)30為例,使用for循環(huán)求所有因數(shù):

for($i=1;$i<30;$i++){
    if($a%$i==0){//分解因數(shù)
        $arr1[]=$i;
    }
}

輸出這個數(shù)組$arr1

var_dump($arr1);

看看結(jié)果:

PHP中怎么返回給定兩數(shù)間的全部公因數(shù)和最大公因數(shù)

可以看出數(shù)30的因數(shù)有:1、2、3、5、6、10、15。

利用上述的方法我們再獲取數(shù)40的所有因數(shù),將它們存到一個數(shù)組$arr2中:

PHP中怎么返回給定兩數(shù)間的全部公因數(shù)和最大公因數(shù)

可以看出數(shù)40的因數(shù)有:1、2、4、5、8、10、20。

2、兩個整數(shù)的所有因數(shù)都獲取了,就可以使用array_intersect()函數(shù)來求它們間的所有公因數(shù)了。(array_intersect()函數(shù)可以計算兩個數(shù)組的交集,不懂可以閱讀《PHP數(shù)組學(xué)習(xí)之如何比較兩個數(shù)組求交集》)。

$result=array_intersect($arr1,$arr2);
var_dump($result);

輸出結(jié)果為:

PHP中怎么返回給定兩數(shù)間的全部公因數(shù)和最大公因數(shù)

這樣就可以得出數(shù)30和40的所有公因數(shù):1、2、5、10。

3、30和40的所有公因數(shù)都在交集數(shù)組$result中,我們就可以使用max()函數(shù)來獲取數(shù)組中最大的那個數(shù),即最大公因數(shù)。

$max=max($result);
echo "最大公因數(shù)為: $max";

輸出結(jié)果為:

PHP中怎么返回給定兩數(shù)間的全部公因數(shù)和最大公因數(shù)

OK,完成!將上面的代碼封裝在一個函數(shù)里面:

<?php
header("Content-type:text/html;charset=utf-8");
function gcd($a,$b){
$arr1=array();
$arr2=array();
for($i=1;$i<$a;$i++){
    if($a%$i==0){//分解因數(shù)
        $arr1[]=$i;
    }
}
for($i=1;$i<$b;$i++){
    if($b%$i==0){//分解因數(shù)
        $arr2[]=$i;
    }
}

$result=array_intersect($arr1,$arr2);
echo "數(shù) $a 和 $b 的公因(約)數(shù)有:";
foreach($result as $value){
	echo $value." , ";
}

$max=max($result);
echo "<br>最大公因數(shù)為: $max  <br><br>";
}
gcd(30,40);
gcd(12,16);
?>

輸出結(jié)果:

PHP中怎么返回給定兩數(shù)間的全部公因數(shù)和最大公因數(shù)

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

文章標(biāo)題:PHP中怎么返回給定兩數(shù)間的全部公因數(shù)和最大公因數(shù)
轉(zhuǎn)載來源:http://www.muchs.cn/article8/ghjpip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、品牌網(wǎng)站設(shè)計、網(wǎng)站策劃、靜態(tài)網(wǎng)站、網(wǎng)站排名、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司