PHP_PHP チュートリアルで 2 つの整数の最大公約数を計算するための一般的なアルゴリズムの概要
PHPで2つの整数の最大公約数を計算するためによく使われるアルゴリズムのまとめ
この記事では、PHPで2つの整数の最大公約数を計算するためによく使われるアルゴリズムを主に紹介します。例では、最大公約数には特定の基準値があり、困っている友達はそれを参照できます
この記事の例では、PHP で 2 つの整数の最大公約数を計算する一般的なアルゴリズムについて説明します。参考のためにみんなで共有してください。詳細は以下の通りです
コードは次のとおりです:
関数 microtime_float ()
{
list( $usec , $sec ) =explode ( " " , microtime ());
return ((float) $usec + (float) $sec );
}
//////////////////////////////////////////
//ユークリッドアルゴリズム
関数 ojld($m, $n) {
if($m ==0 && $n == 0) {
false を返します;
}
if($n == 0) {
$m を返します;
}
while($n != 0){
$r = $m % $n;
$m = $n;
$n = $r;
}
$m を返します;
}
//////////////////////////////////////////
//最大公約数の定義に基づく
関数baseDefine($m, $n) {
if($m ==0 && $n == 0) {
false を返します;
}
$min = min($m, $n);
while($min >= 1) {
if($m % $min == 0){
if($n % $min ==0) {
$min を返します;
}
}
$min -= 1;
}
$min を返します;
}
/////////////////////////////////////////////
//中学数学の計算方法
関数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){
休憩 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){
休憩 2;
}
}
}
//共通因数
$jj = array_intersect($mz, $nz) //交差点を取得します
; $gys = array();
//2 つの数値のうち、最も出現頻度の低い因数を取り出し、冗長なものを削除します。
$c = 1; // 数字が出現した回数を記録します
$p = 0 //最後に出現した数値を記録します
; 並べ替え($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;
}
$count を返します;
}
// 2 以上の指定された整数の連続する素数のシーケンスを見つけます
//エラトステネスのスクリーニング法
関数 getList($num) {
$a = 配列();
$a = 配列();
for($i = 2; $i $a[$i] = $i;
}
for( $i = 2; $i if($a[$i] != 0) {
$j = $i * $i;
while($j $a[$j] = 0;
$j = $j + $i;
}
}
}
$p = 0;
for($i = 2; $i if($a[$i] != 0) {
$L[$p] = $a[$i];
$p++;
}
}
$L を返します;
}
//////////////////////////////////////
//テスト
$time_start = microtime_float ();
//エコー ojld(60, 24) //0.0000450611 秒
//エコーbaseDefine(60, 24) //0.0000557899秒
; echo BaseSchool(60, 24) //0.0003471375 秒
$time_end = microtime_float ();
$time = $time_end - $time_start ;
echo '
' . sprintf('%1.10f', $time) .
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
