RosettaCodeData/Task/Pernicious-numbers/PowerShell/pernicious-numbers-1.ps1
2026-04-30 12:34:36 -04:00

28 lines
633 B
PowerShell

function pop-count($n) {
(([Convert]::ToString($n, 2)).toCharArray() | where {$_ -eq '1'}).count
}
function isPrime ($n) {
if ($n -eq 1) {$false}
elseif ($n -eq 2) {$true}
elseif ($n -eq 3) {$true}
else{
$m = [Math]::Floor([Math]::Sqrt($n))
(@(2..$m | where {($_ -lt $n) -and ($n % $_ -eq 0) }).Count -eq 0)
}
}
$i = 0
$num = 1
$arr = while($i -lt 25) {
if((isPrime (pop-count $num))) {
$i++
$num
}
$num++
}
"first 25 pernicious numbers"
"$arr"
""
"pernicious numbers between 888,888,877 and 888,888,888"
"$(888888877..888888888 | where{isprime(pop-count $_)})"