Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
24
Task/Self-numbers/Sidef/self-numbers-1.sidef
Normal file
24
Task/Self-numbers/Sidef/self-numbers-1.sidef
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
func is_self_number(n) {
|
||||
|
||||
if (n < 30) {
|
||||
return (((n < 10) && (n.is_odd)) || (n == 20))
|
||||
}
|
||||
|
||||
var qd = (1 + n.ilog10)
|
||||
var r = (1 + (n-1)%9)
|
||||
var h = (r + 9*(r%2))/2
|
||||
var ld = 10
|
||||
|
||||
while (h + 9*qd >= n%ld) {
|
||||
ld *= 10
|
||||
}
|
||||
|
||||
var vs = idiv(n, ld).sumdigits
|
||||
n %= ld
|
||||
|
||||
0..qd -> none { |i|
|
||||
vs + sumdigits(n - h - 9*i) == (h + 9*i)
|
||||
}
|
||||
}
|
||||
|
||||
say is_self_number.first(50).join(' ')
|
||||
3
Task/Self-numbers/Sidef/self-numbers-2.sidef
Normal file
3
Task/Self-numbers/Sidef/self-numbers-2.sidef
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
func is_self_number(n) {
|
||||
1..min(n>>1, 9*n.len) -> none {|i| sumdigits(n-i) == i } && (n > 0)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue