61 lines
1.8 KiB
Text
61 lines
1.8 KiB
Text
( ( vampire
|
|
= N len R fangsList
|
|
. !arg:@(?N:? [?len)
|
|
& 1/2*!len:~/:?len
|
|
& ( R
|
|
= len numpart left right allowed fangs rdigits
|
|
, tried digit untried head tail found
|
|
. !arg:(?len.?left.?numpart.?allowed)
|
|
& :?found
|
|
& ( !len:>0
|
|
& ( @( !numpart
|
|
: ?tried
|
|
( #%@?digit
|
|
& !allowed:?head !digit ?tail
|
|
& !head !tail:?allowed
|
|
)
|
|
( ?untried
|
|
& R
|
|
$ ( !len+-1
|
|
. 10*!left+!digit
|
|
. str$(!tried !untried)
|
|
. 0 1 2 3 4 5 6 7 8 9
|
|
)
|
|
: ?fangs
|
|
& !found !fangs:?found
|
|
& ~
|
|
)
|
|
)
|
|
| !found
|
|
)
|
|
| !N*!left^-1:~/?right:~<!left:?rdigits
|
|
& (!left*1/10:/|!right*1/10:/)
|
|
& ( @( !numpart
|
|
: ?
|
|
( #%@?digit ?
|
|
& @(!rdigits:?head !digit ?tail)
|
|
& str$(!head !tail):?rdigits
|
|
& ~
|
|
)
|
|
)
|
|
| !rdigits:&(!left,!right)
|
|
)
|
|
)
|
|
)
|
|
& R$(!len.0.!N.1 2 3 4 5 6 7 8 9)
|
|
: (
|
|
| ?fangsList
|
|
& out$(!N !fangsList)
|
|
& 1+!count:?count
|
|
)
|
|
)
|
|
& 0:?count
|
|
& 10:?i
|
|
& 16758243290880 24959017348650 14593825548650:?bignums
|
|
& whl
|
|
' ( ( vampire$!i&1+!i:?i
|
|
| !i*10:?i
|
|
)
|
|
& (!count:<25|!bignums:%?i ?bignums)
|
|
)
|
|
);
|