Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
34
Task/Zumkeller-numbers/Sidef/zumkeller-numbers.sidef
Normal file
34
Task/Zumkeller-numbers/Sidef/zumkeller-numbers.sidef
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
func is_Zumkeller(n) {
|
||||
|
||||
return false if n.is_prime
|
||||
return false if n.is_square
|
||||
|
||||
var sigma = n.sigma
|
||||
|
||||
# n must have an even abundance
|
||||
return false if (sigma.is_odd || (sigma < 2*n))
|
||||
|
||||
# true if n is odd and has an even abundance
|
||||
return true if n.is_odd # conjecture
|
||||
|
||||
var divisors = n.divisors
|
||||
|
||||
for k in (2 .. divisors.end) {
|
||||
divisors.combinations(k, {|*a|
|
||||
if (2*a.sum == sigma) {
|
||||
return true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
say "First 220 Zumkeller numbers:"
|
||||
say (1..Inf -> lazy.grep(is_Zumkeller).first(220).join(' '))
|
||||
|
||||
say "\nFirst 40 odd Zumkeller numbers: "
|
||||
say (1..Inf `by` 2 -> lazy.grep(is_Zumkeller).first(40).join(' '))
|
||||
|
||||
say "\nFirst 40 odd Zumkeller numbers not divisible by 5: "
|
||||
say (1..Inf `by` 2 -> lazy.grep { _ % 5 != 0 }.grep(is_Zumkeller).first(40).join(' '))
|
||||
Loading…
Add table
Add a link
Reference in a new issue