2013-04-18 40 views
1

下面的代碼適用於因子(6)。但是,對於因子(-8),代碼返回空白頁。我試了很多,但我找不到什麼是錯的在PHP中查找因子的代碼不適用於負數

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

提示:不(-8)有一個平方根是多少?如果是的話,它是什麼?如果沒有,請嘗試檢查for循環並告訴我們您處理了哪些值。此外,嘗試在if語句之後添加「else」並檢查發生了什麼。 – 2013-04-18 19:51:06

回答

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>";  
     } 
    } 
} 
+0

非常感謝你 – user2295677

+0

@ user2295677 - 如果這個答案幫助你解決了它... Upvote it。接受。 –

相關問題