Minimum multiple of m where digital sum equals m: Difference between revisions
Content added Content deleted
(Added Wren) |
(Added Algol 68) |
||
Line 21: | Line 21: | ||
=={{header|ALGOL 68}}== |
|||
<lang algol68>BEGIN # find the smallest m where mn = digit sum of n, n in 1 .. 70 # |
|||
# returns the digit sum of n, n must be >= 0 # |
|||
OP DIGITSUM = ( INT n )INT: |
|||
IF n < 10 THEN n |
|||
ELSE |
|||
INT result := n MOD 10; |
|||
INT v := n OVER 10; |
|||
WHILE v > 0 DO |
|||
result +:= v MOD 10; |
|||
v := v OVER 10 |
|||
OD; |
|||
result |
|||
FI # DIGITSUM # ; |
|||
# show the minimum multiples of n where the digit sum of the multiple is n # |
|||
FOR n TO 70 DO |
|||
BOOL found multiple := FALSE; |
|||
FOR m WHILE NOT found multiple DO |
|||
IF DIGITSUM ( m * n ) = n THEN |
|||
found multiple := TRUE; |
|||
print( ( " ", whole( m, -8 ) ) ); |
|||
IF n MOD 10 = 0 THEN print( ( newline ) ) FI |
|||
FI |
|||
OD |
|||
OD |
|||
END</lang> |
|||
{{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|Raku}}== |
=={{header|Raku}}== |