Anonymous user
Vampire number: Difference between revisions
m
→{{header|REXX}}: used a template for ou tput, optimized the VAMPIRE function.
m (→{{header|REXX}}: changed some comments and whitespace.) |
m (→{{header|REXX}}: used a template for ou tput, optimized the VAMPIRE function.) |
||
Line 2,688:
_=right(j,1); if j<!._ then iterate /*is number tenable based on last dig? */
f=vampire(j); if f=='' then iterate /*Are fangs null? Yes, not vampire. */
#=# +
say 'vampire number' right(#,length(N)) "is: " j', fangs=' f
end /*j*/ /* [↑] process a range of numbers. */
Line 2,694:
if f=='' then say N " isn't a vampire number."
else say N " is a vampire number, fangs=" f
exit /*stick a fork in it, we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
vampire: procedure; parse arg ?,, $.
if L//2 then return
do k=1 for L; _=substr(?,k,1); $._=$._ || _; end /*k*/
do m=0 for 10; bot=bot || $.m; end /*m*/
top=left( reverse(bot), w); bot=left(bot, w) /*determine limits of search*/
inc=?//2 + 1 /*? is odd? INC=2. No? INC=1*/
beg=max(bot, 10**(w-1)); if inc=2 then if beg//2==0 then beg=beg + 1
/* [↑] odd BEG if odd INC*/
q=?
if q*d//9 \==
t=?;
end
return
▲'''output''' when using the default input:
<pre>
vampire number 1 is: 1260, fangs= [21∙60]
|