质数因子问题

质数因子问题_第1张图片
我的最初解法:
def isPrime(number):
    if number==1:
        return False
    for i in range(2,number):
        if number%i==0:
            return False
    return True

while True:
    try:
        s=int(input())
        t=2
        result=[]
        while s>1:
            if s%t==0 and isPrime(t):
                s=s//t
                result.append(t)
            else:
                t=t+1
        for r in result:
            print(r,end=' ')
    except:
        break

在讨论区看到一种很精简的写法,利用了break和while循环;讨论区还提出了近一步优化的方法,尝试了一下用python写出来好像效果不太好


质数因子问题_第2张图片
屏幕快照 2019-01-05 下午3.15.40.png
质数因子问题_第3张图片
屏幕快照 2019-01-05 下午3.38.04.png
质数因子问题_第4张图片
屏幕快照 2019-01-05 下午3.38.10.png

你可能感兴趣的:(质数因子问题)