2015-02-11 101 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 
}