在PHP中查找因子的代码不适用于负数

时间:2013-04-18 19:50:18

标签: php

下面的代码适用于因子(6)。但是,对于因子(-8),代码返回空白页。我已经尝试了很多,但我找不到有什么问题

 function factor($n){
        for ($x = 1; $x <= sqrt($n); $x++)
        {
            if ($n % $x == 0)
            {
            $z = $n/$x; 
            echo "$x and $z"."<br><br>";    
            }
        }
     }

1 个答案:

答案 0 :(得分:3)

你想避免想象中的数字 - 特别是在循环中。似乎PHP无法很好地处理这个问题。

使$ n为正数,该函数将起作用:

function factor($n){
    for ($x = 1; $x <= sqrt(abs($n)); $x++)
    {
        if ($n % $x == 0)
        {
            $z = $n/$x; 
            echo "$x and $z"."<br><br>";    
        }
    }
 }