1

例如,下面的代码适用于 factor(6)。但是,对于 factor(-8),代码返回一个空白页。我尝试了很多,但我无法找出问题所在

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

1 回答 1

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>";    
        }
    }
 }
于 2013-04-18T21:18:13.440 回答