Largest number divisible by its digits: Difference between revisions
Largest number divisible by its digits (view source)
Revision as of 21:13, 15 January 2022
, 2 years agoAdded XPL0 example.
(→{{header|ALGOL 68}}: Tweaks) |
(Added XPL0 example.) |
||
Line 2,371:
<pre>
Largest hex number is fedcb59726a1348
</pre>
=={{header|XPL0}}==
Assumes answer contains either a 2, 4, 6 or 8 and is thus divisible by 2.
Also assumes answer contains either a 3, 6 or 9 and is thus divisible by 3.
Takes 9.7 seconds on Pi4 (with XPL0 ver 3.2).
<lang XPL0>int Digits; \bit array
func AllDiv(N); \Return 'true' if N is divisible by its digits
int N, D;
[for D:= 9 downto 2 do
if 1<<D & Digits then
if rem(N/D) # 0 then return false;
return true;
];
func Unique(N); \Return 'true' if N contains unique digits
int N;
[Digits:= 1; \disallow 0
while N do
[N:= N/10;
if 1<<rem(0) & Digits then return false;
Digits:= 1<<rem(0) ! Digits;
];
return true;
];
int N;
[N:= 987654312; \largest possible number divisible by (2*3)
loop [if Unique(N) then
if AllDiv(N) then
[IntOut(0, N);
quit;
];
N:= N-6;
];
]</lang>
{{out}}
<pre>
9867312
</pre>
|