第一是函数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=2x3x545=3x3x5
30和45的公倍数里,应既包含30的所有(
2x3x5),又包含45的所有(3x3x5
),但两个数有相同的质因数可各取一个。30和45最小公倍数里,只要包含它们全部有的质因数(3x5
)以及各自独有的质因数(2.3
)就可以了。所以,30和45的最小公倍数是(90
)