Task
Given an integer product, find the smallest positive (i.e. greater than 0) integer the product of whose digits is equal to product. If there is no such integer, return -1 instead.
Example
- For
product = 12, the output should be
digitsProduct(product) = 26; - For
product = 19, the output should be
digitsProduct(product) = -1.
Input/Output
-
[execution time limit]
4 seconds (py3) -
[input] integer product
Guaranteed constraints:0 ≤ product ≤ 600. -
[output] integer
My Solution
def digitsProduct(product):
if product == 0:
return 10
divisor = []
while product > 9:
for i in reversed(range(2, 10)):
if product % i == 0:
divisor.append(i)
product = product / i
break
if i == 2:
return -1
divisor.append(int(product))
return int(''.join(map(str, divisor[::-1])))