php取兩個整數的最大公約數演算法大全

2021-08-03 08:18:43 字數 1556 閱讀 1791

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

<?php

//計時,返回秒

function microtime_float ()

////歐幾里得演算法

function ojld($m, $n)

if($n == 0)

while($n != 0)

return $m;}//

//基於最大公約數的定義

function basedefine($m, $n)

$min = min($m, $n);

while($min >= 1)

}$min -= 1;

}return $min;

}//中學數學裡面的計算方法

function baseschool($m, $n)

$c = 1;

foreach($mz as $v) }}

//n所有質因數

foreach($np as $v)

$c = 1;

foreach($nz as $v) }}

//公因數

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

$gys = array();

//取出在倆數中出現次數最少的因數,去除多餘的。

$c = 1; //記錄數字出現的次數

$p = 0; //記錄上一次出現的數字

sort($jj);

foreach($jj as $key => $v)

elseif($p != 0)

$p = $v;

$mk = array_keys($mz, $v);

$nk = array_keys($nz, $v);

$k = ( count($mk) > count($nk) ) ? count($nk) : count($mk);

if($c > $k)

}$count = 1;

foreach($jj as $value)

return $count;

}//求給定大於等於2的整數的連續質數序列

//埃拉託色尼篩選法

function getlist($num)

for( $i = 2; $i <= floor( sqrt($num) ); $i++ ) }}

$p = 0;

for($i = 2; $i <= $num; $i++)

}return $l;}/

//test

$time_start = microtime_float ();

//echo ojld(60, 24); seconds

//echo basedefine(60, 24); seconds

echo baseschool(60, 24); seconds

$time_end = microtime_float ();

$time = $time_end - $time_start ;

echo '

' . sprintf('%1.10f', $time) . 'seconds';

求兩個正整數的最大公約數

基本要求 從鍵盤輸入兩個整數,輸出兩個整數的最大公約數。用c或c 語言實現程式解決問題。1.程式風格良好 使用自定義注釋模板 2.使用三種演算法解決問題 3.提供友好的輸入輸出,並進行輸入資料的正確性驗證 方法一 窮舉法 窮舉法,顧名思義,就是乙個乙個試,即遍歷兩個整數中較小的數到零的所有數,如果能...

求兩個正整數的最大公約數

求兩個正整數的最大公約數問題 版本 v1.0 主要功能 1 輾轉相除法 a b得餘數c 若c 0,則b即為兩數的最大公約數,結束 若c 0,則a b,b c,再回去執行 2 相減法 兩整數a和b 若a b,則a a b 若a b,則a 或b 即為兩數的最大公約數,結束 若a b,則再回去執行 3 窮...

求兩個數最大公約數

題目 寫乙個程式,求兩個正數的最大公約數。如1100100210001,120200021,求其最大公約數 分析 設兩個數分別為x,y 求其最大公約數f x,y 如果有x 2 0而y 2不等於0,那麼可以 約簡為f x 2,y 同樣道理適用於y 如果x與y都是偶數,那麼最大公約數可以為f x 2,y...