【vivo2020春招】 02 数位之积

题目:

现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 ... ...)之乘积等于n,若不存在则输出 -1。

分析:

 对于n,找出2-9中所有能被它整除的数,然后组合成一个最小的整数即可

解题:

#
# 输入一个整形数值,返回一个整形值
# @param n int整型 n>9
# @return int整型
#
class Solution:
    def solution(self , n ):
        # write code here
        list1=[]
        row = n
        for i in range(9,1,-1):
            while(n%i ==0):
                list1.append(i)
                n=n/i
        leicheng=1
        for i in list1:
            leicheng *=i
        if(leicheng != row):
            return -1
        result =0
        for i in range(len(list1)):
            result += list1[i] *pow(10,i)
        return(result)

 

posted @ 2020-04-26 15:45  Flora1014444  阅读(311)  评论(0编辑  收藏  举报