zoukankan      html  css  js  c++  java
  • 【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)
  • 相关阅读:
    20140710 sequence 前缀和
    20140709 testC 数学题
    20140708 testA 组合数学
    20140708 testB DP 组合数学
    Sad :(
    已经是一个废人了……
    Game Theory
    HDU Math Problems
    2-sat问题
    并查集
  • 原文地址:https://www.cnblogs.com/fuj905/p/12780074.html
Copyright © 2011-2022 走看看