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

18 lines
659 B
PowerShell

# Start with a pool large enough to meet the requirements
$Pool = [System.Collections.ArrayList]( 2..22000 )
# Start with 1, because it's grandfathered in
$Ludic = @( 1 )
# While the size of the pool is still larger than the next Ludic number...
While ( $Pool.Count -gt $Pool[0] )
{
# Add the next Ludic number to the list
$Ludic += $Pool[0]
# Remove from the pool all entries whose index is a multiple of the next Ludic number
[math]::Truncate( ( $Pool.Count - 1 )/ $Pool[0])..0 | ForEach { $Pool.RemoveAt( $_ * $Pool[0] ) }
}
# Add the rest of the numbers in the pool to the list of Ludic numbers
$Ludic += $Pool.ToArray()