vivo2020校招编程--寻找位数之积等于n的最小数m

**题目描述:**现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。
输入例子
100
36
输出例子
455
48

实现代码:

\# 输入一个整形数值,返回一个整形值
\# @param n int整型 n>9
\# @return int整型

class Solution:
    def solution(self , n ):
        temp = n
        nums = []
        while temp > 9:
            flag = 0
            for i in range(9, 1, -1):
                if temp % i == 0:
                    flag = 1
                    nums.append(i)
                    temp /= i
                    if temp < 10:
                        nums.append(int(temp))
                    break
            if flag == 0:
                return -1
        nums = sorted(nums)
        res = ''.join(str(x) for x in nums)
        return int(res)

你可能感兴趣的:(算法题,校招真题,算法,leetcode,面试)