对一个数字进行质数分解,方式如下,封装为了一个函数。这种函数执行效率比较高。原因是对质数的判定是采用二分中间压缩法。
$num = 64534294354983;
function getPrimeExplode($num, &$tmp)
{
if($num < 2) exit('the number is out of the range');
$end = $num;
for($i = 2; $i < $end; $i++)
{
if($num % $i == 0)
{
$pre = $num / $i;
$tmp[] = $i;
getS($pre,$tmp);
return '';
}
else
{
$end = floor($num / $i);
}
}
$tmp[] = $num;
}
getPrimeExplode($num,$t);
print_r($t);
输出如下:
Array
(
[0] => 3
[1] => 19
[2] => 59
[3] => 19189501741
)