Largest number divisible by its digits: Difference between revisions

Removed the conversion to string to extract digits. Replaced hashset by a simple set, a lot more efficient.
(Removed the conversion to string to extract digits. Replaced hashset by a simple set, a lot more efficient.)
Line 1,114:
 
===Base 10===
<lang nim>iterator digits(n: int): int =
{{trans|C++}}
var n = n
<lang nim>import sets
while true:
yield n mod 10
n = n div 10
if n == 0: break
 
func checkDec(num: int): bool =
var hSet: = initHashSetset[intrange[0..9]]()
for cd in $num.digits:
var d = ord(c) - ord('0')
if d == 0 or num mod d != 0 or d in hSet:
return false
Line 1,128 ⟶ 1,131:
for i in countdown(98764321, 1):
if checkDec(i):
echo $i
break</lang>
{{out}}
Anonymous user