September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
44
Task/Pernicious-numbers/PowerShell/pernicious-numbers-2.psh
Normal file
44
Task/Pernicious-numbers/PowerShell/pernicious-numbers-2.psh
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
function Select-PerniciousNumber
|
||||
{
|
||||
[CmdletBinding()]
|
||||
[OutputType([int])]
|
||||
Param
|
||||
(
|
||||
[Parameter(Mandatory=$true,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=0)]
|
||||
$InputObject
|
||||
)
|
||||
|
||||
Begin
|
||||
{
|
||||
function Test-Prime ([int]$n)
|
||||
{
|
||||
$n = [Math]::Abs($n)
|
||||
|
||||
if ($n -eq 0 -or $n -eq 1) {return $false}
|
||||
|
||||
for ($m = 2; $m -le [Math]::Sqrt($n); $m++)
|
||||
{
|
||||
if (($n % $m) -eq 0) {return $false}
|
||||
}
|
||||
|
||||
return $true
|
||||
}
|
||||
|
||||
[scriptblock]$popCount = {(([Convert]::ToString($this, 2)).ToCharArray() | Where-Object {$_ -eq '1'}).Count}
|
||||
}
|
||||
Process
|
||||
{
|
||||
foreach ($object in $InputObject)
|
||||
{
|
||||
$object | Add-Member -MemberType ScriptProperty -Name PopCount -Value $popCount -Force -PassThru | ForEach-Object {
|
||||
if (Test-Prime $_.PopCount)
|
||||
{
|
||||
$_
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
$start, $end = 0, 999999
|
||||
$range1 = $start..$end | Select-PerniciousNumber | Select-Object -First 25
|
||||
|
||||
"First {0} pernicious numbers:`n{1}`n" -f $range1.Count, ($range1 -join ", ")
|
||||
|
||||
$start, $end = 888888877, 888888888
|
||||
$range2 = $start..$end | Select-PerniciousNumber
|
||||
|
||||
"Pernicious numbers between {0} and {1}:`n{2}`n" -f $start, $end, ($range2 -join ", ")
|
||||
Loading…
Add table
Add a link
Reference in a new issue