Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
17
Task/Proper-divisors/PowerShell/proper-divisors-1.psh
Normal file
17
Task/Proper-divisors/PowerShell/proper-divisors-1.psh
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
function proper-divisor ($n) {
|
||||
if($n -ge 2) {
|
||||
$lim = [Math]::Floor([Math]::Sqrt($n))
|
||||
$less, $greater = @(1), @()
|
||||
for($i = 2; $i -lt $lim; $i++){
|
||||
if($n%$i -eq 0) {
|
||||
$less += @($i)
|
||||
$greater = @($n/$i) + $greater
|
||||
}
|
||||
}
|
||||
if(($lim -ne 1) -and ($n%$lim -eq 0)) {$less += @($lim)}
|
||||
$($less + $greater)
|
||||
} else {@()}
|
||||
}
|
||||
"$(proper-divisor 100)"
|
||||
"$(proper-divisor 496)"
|
||||
"$(proper-divisor 2048)"
|
||||
15
Task/Proper-divisors/PowerShell/proper-divisors-2.psh
Normal file
15
Task/Proper-divisors/PowerShell/proper-divisors-2.psh
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
function proper-divisor ($n) {
|
||||
if($n -ge 2) {
|
||||
$lim = [Math]::Floor($n/2)+1
|
||||
$proper = @(1)
|
||||
for($i = 2; $i -lt $lim; $i++){
|
||||
if($n%$i -eq 0) {
|
||||
$proper += @($i)
|
||||
}
|
||||
}
|
||||
$proper
|
||||
} else {@()}
|
||||
}
|
||||
"$(proper-divisor 100)"
|
||||
"$(proper-divisor 496)"
|
||||
"$(proper-divisor 2048)"
|
||||
49
Task/Proper-divisors/PowerShell/proper-divisors-3.psh
Normal file
49
Task/Proper-divisors/PowerShell/proper-divisors-3.psh
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
function eratosthenes ($n) {
|
||||
if($n -gt 1){
|
||||
$prime = @(0..$n| foreach{$true})
|
||||
$m = [Math]::Floor([Math]::Sqrt($n))
|
||||
function multiple($i) {
|
||||
for($j = $i*$i; $j -le $n; $j += $i) {
|
||||
$prime[$j] = $false
|
||||
}
|
||||
}
|
||||
multiple 2
|
||||
for($i = 3; $i -le $m; $i += 2) {
|
||||
if($prime[$i]) {multiple $i}
|
||||
}
|
||||
2
|
||||
for($i = 3; $i -le $n; $i += 2) {
|
||||
if($prime[$i]) {$i}
|
||||
}
|
||||
|
||||
} else {
|
||||
Write-Error "$n is not greater than 1"
|
||||
}
|
||||
}
|
||||
function prime-decomposition ($n) {
|
||||
$array = eratosthenes $n
|
||||
$prime = @()
|
||||
foreach($p in $array) {
|
||||
while($n%$p -eq 0) {
|
||||
$n /= $p
|
||||
$prime += @($p)
|
||||
}
|
||||
}
|
||||
$prime
|
||||
}
|
||||
function proper-divisor ($n) {
|
||||
if($n -ge 2) {
|
||||
$array = prime-decomposition $n
|
||||
$lim = $array.Count
|
||||
function state($res, $i){
|
||||
if($i -lt $lim) {
|
||||
state ($res) ($i + 1)
|
||||
state ($res*$array[$i]) ($i + 1)
|
||||
} elseif($res -lt $n) {$res}
|
||||
}
|
||||
state 1 0 | sort -Unique
|
||||
} else {@()}
|
||||
}
|
||||
"$(proper-divisor 100)"
|
||||
"$(proper-divisor 496)"
|
||||
"$(proper-divisor 2048)"
|
||||
Loading…
Add table
Add a link
Reference in a new issue