php如何计算两个整数的最大公约数
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章将为大家详细讲解有关php如何计算两个整数的最大公约数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
固安县委网络安全检查
现代社会网络技术的重要性
软件开发团队需要写代码吗
手机如何关闭网络安全警告
pdi数据库同步软件
北京迅雷网络技术有限公司
机架服务器管理
网络安全产品手绘入门
国三数据库技术 未来教育
hcna网络技术pdf
正定信息化软件开发专业服务
怎么看数据库中间件及版本
软件开发EI期刊
社区工作站的管理与服务器
网络安全比赛是什么意思
数据库宏打开网页
华为服务器集群
网络安全宣传会议议程
艾森哲软件开发
访问网站经过的服务器
湖北数据网络技术分类标准
吃鸡打不开显示无法连接服务器
数据库新用户可访问表
卓凡信息网络技术应用
网络安全概述试卷
软件开发行业就业政策
数据库怎么设计一个网站
云服务器打csgo
新时代网络安全发展趋势
信息网络安全1000字论文