Jump to content

Disarium numbers: Difference between revisions

add Refal
(Add C# implementation)
(add Refal)
 
Line 3,063:
 
 
=={{header|Refal}}==
<syntaxhighlight lang="refal">$ENTRY Go {
= <FindDisarium 19 0>;
};
 
Digits {
0 = ;
s.N, <Divmod s.N 10>: (s.R) s.D = <Digits s.R> s.D;
};
 
Pow {
s.N 0 = 1;
s.N s.P = <* s.N <Pow s.N <- s.P 1>>>;
};
 
PowSum {
() e.P = 0;
(s.I e.X) e.P = <+ <Pow s.I e.P> <PowSum (e.X) <+ e.P 1>>>;
e.X = <PowSum (e.X) 1>;
};
 
Disarium {
e.N, <PowSum <Digits e.N>>: e.N = True;
e.N = False;
};
 
FindDisarium {
0 s.N = ;
s.I s.N, <Disarium s.N>: {
True = <Prout s.N> <FindDisarium <- s.I 1> <+ s.N 1>>;
False = <FindDisarium s.I <+ s.N 1>>;
};
};</syntaxhighlight>
{{out}}
<pre>0
1
2
3
4
5
6
7
8
9
89
135
175
518
598
1306
1676
2427
2646798</pre>
=={{header|RPL}}==
≪ DUP →STR → digits
2,114

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.