Minimum multiple of m where digital sum equals m: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Minor tidy) |
Not a robot (talk | contribs) (add Refal) |
||
Line 2,374: | Line 2,374: | ||
69: 1157971 |
69: 1157971 |
||
70: 12842857</pre> |
70: 12842857</pre> |
||
=={{header|Refal}}== |
|||
<syntaxhighlight lang="refal">$ENTRY Go { |
|||
= <Table MinMult 1 70 10 10>; |
|||
}; |
|||
MinMult { |
|||
s.N = <MinMult s.N 1>; |
|||
s.N s.M, <DigSum <* s.M s.N>>: s.N = s.M; |
|||
s.N s.M = <MinMult s.N <+ s.M 1>>; |
|||
}; |
|||
DigSum { |
|||
0 = 0; |
|||
s.N, <Symb s.N>: s.D e.R = <+ <Numb s.D> <DigSum <Numb e.R>>>; |
|||
}; |
|||
Cell { |
|||
s.Size e.X, <Lenw e.X>: s.Cur e.Y, |
|||
<Compare s.Cur s.Size>: '-' = <Cell s.Size ' 'e.X>; |
|||
s.Size e.X = e.X; |
|||
}; |
|||
Table { |
|||
s.F s.N s.Max s.Width s.CW = |
|||
<Table s.F s.N s.Max s.Width s.CW s.Width ()>; |
|||
s.F s.N s.Max s.Width s.CW 0 (e.Line) = |
|||
<Prout e.Line> |
|||
<Table s.F s.N s.Max s.Width s.CW s.Width ()>; |
|||
s.F s.N s.Max s.Width s.CW s.Col (e.Line), <Compare s.N s.Max>: '+' = |
|||
<Prout e.Line>; |
|||
s.F s.N s.Max s.Width s.CW s.Col (e.Line) = |
|||
<Table s.F <+ s.N 1> s.Max s.Width s.CW <- s.Col 1> |
|||
(e.Line <Cell s.CW <Symb <Mu s.F s.N>>>)>; |
|||
};</syntaxhighlight> |
|||
{{out}} |
|||
<pre> 1 1 1 1 1 1 1 1 1 19 |
|||
19 4 19 19 13 28 28 11 46 199 |
|||
19 109 73 37 199 73 37 271 172 1333 |
|||
289 559 1303 847 1657 833 1027 1576 1282 17497 |
|||
4339 2119 2323 10909 11111 12826 14617 14581 16102 199999 |
|||
17449 38269 56413 37037 1108909 142498 103507 154981 150661 1333333 |
|||
163918 322579 315873 937342 1076923 1030303 880597 1469116 1157971 12842857</pre> |
|||
=={{header|RPL}}== |
=={{header|RPL}}== |