2015-02-11 114 views
0

我正在嘗試編寫一個腳本,用於計算所有低於X的數字(本例中爲100萬)的主因子。代碼非常非常簡單,我認爲很容易理解,但我似乎無法找出爲什麼它不起作用。PowerShell計算主要因素

where ($number -lt 1000000) { 
    where ($number2 -lt $number) { 
     if (($number % $number2) -eq 0) { 
      Write-Host number $number prime $number2 >> C:\workspace\output.txt 
     } 
    } 
} 
+1

您正在使用'where'就像是while循環的外觀,而且您不會更改'$ number'或'$ number2'的值。如果您查看邏輯的['for' block](http://ss64.com/ps/for.html)可能會更容易。 – Matt 2015-02-11 05:20:01

回答

0
where ($number -lt 1000000) { 
    where ($number2 -lt $number) { 
     if (($number % $number2) -eq 0) { 
      Write-Host number $number prime $number2 >> C:\workspace\output.txt 
     } 
     $number++ 
    } 
} 

您需要增加在環

0

$數你都是對的。我錯過了$number = $number + 1。我幾個小時後才弄清楚了。

#setup 
$number = 1 
$number2 = 1 

while ($number -le 1000000) 
{ 
    while ($number2 -le $number) 
    { 
     if (($number % $number2) -eq 0) 
     { 
      Write-Host $number and $number2 
     } 
     $number2 = $number2 + 1 
    } 
    $number2 = 1 
    $number = $number + 1 
}