php如何计算两个整数的最大公约数
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关php如何计算两个整数的最大公约数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:
千家信息网最后更新 2026年11月01日php如何计算两个整数的最大公约数
这篇文章将为大家详细讲解有关php如何计算两个整数的最大公约数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
具体如下:
= 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 secondsecho baseSchool(60, 24); //0.0003471375 seconds$time_end = microtime_float ();$time = $time_end - $time_start ;echo '
' . sprintf('%1.10f', $time) . 'seconds';关于"php如何计算两个整数的最大公约数"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
质数
质因数
整数
篇文章
最大
两个
公约数
最大公约数
数字
更多
次数
不错
实用
中学
中学数学
乘积
交集
公因数
内容
因数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技互联网技术
互联网科技未来
碳银互联网科技
北京互联网络科技有限公司
狮子座互联网科技有限公司
科技创新互联网企业
撒么互联网科技公司
镁科技互联网资讯平台
互联网汽车科技小镇
小米互联网科技园设置
银川新华互联网科技学校联系电话
互联网保险科技创业
杭州披云加互联网科技有限公司
有人说阿里系是互联网科技企业
卡尔迅互联网科技有限公司
互联网科技包装股份有限公司上市
吉林省码上互联网科技电话
互联网高科技行业有哪些企业
中国新注册互联网科技
杭州融税互联网科技有限公司
科技互联网政务服务
互联网科技垄断
智能科技公司是互联网公司吗
腾讯阿里互联网科技
紫鲸互联网科技
郑州华宇互联网科技
深圳互联网科技怎么样
广州慧亚互联网科技怎么样
工业互联网山东科技大学
广西科技产业互联网是什么