分解正因数:例如90 = 2*3*3*5

这道题个人理解:

   由于就是拿一个整数,然后一直从2开始一个一个遍历,直到这个数的本身。但是遍历到第一个数时能够将这个数整除的话,将这个数保存,且整除后的结果在重新从2开始遍历到本身,一直循环。

def resolve():
    s = ''
    x = int(input("请输入一个正整数:"))
    y = x
    while True:
        for i in range(2, x+1):
            if x % i == 0:
                s = s + str(i) + "*"  #以字符串的形式保存
                x = int(x / i)
                break
        else:
            break
    print("%d = %s" % (y, s.strip("*")))  #由于多出一个*,因此要strip

resolve()
            
请输入一个正整数:70
70 = 2*5*7

 

posted on 2018-08-20 22:48  zengsf  阅读(484)  评论(0编辑  收藏  举报

导航