将一个正整数分解质因数。python3.6问题,输出为空,是哪里出了问题,求大神解答

Python013

将一个正整数分解质因数。python3.6问题,输出为空,是哪里出了问题,求大神解答,第1张

第一是函数p(t,l)没有返回,在函数里修改列表l,是不能把结果带回的,还有后面的代码里使用了p(t/h),p函数需要两个参数,另外的代码也有一些问题,分解质因数推荐写成以下的形式

def p(n):

    l = []

    for i in range(2,n):

        if i*i>n:

            break

        while n%i==0:

            n //= i

            l.append(i)

    if n!=1:

        l.append(n)

    return l

i = int(input("请输入一个不小于2的正整数:"))

l = p(i)

print ("".join(['*'+str(l[i]) if i!=0 else str(l[i]) for i in range(len(l))]))

30=2x3x5

45=3x3x5

30和45的公倍数里,应既包含30的所有(

2x3x5),又包含45的所有(3x3x5

),但两个数有相同的质因数可各取一个。30和45最小公倍数里,只要包含它们全部有的质因数(3x5

)以及各自独有的质因数(2.3

)就可以了。所以,30和45的最小公倍数是(90