输入一个整数n,将n分解质因数,并一行输出所有的质因数(消除重复)

def abc(a):
    p=1
    for i in range(2, int(a ** 0.5) + 1):
        if a % i != 0:
            p= 0
        else:
            p = 1
            break
    if p==0:
        return un

a=[]
un=int(input())
li=[2,3,5,7]
for i in range(11,int(un ** 0.5) + 1):
    tmp=abc(i)
    if tmp!=None:
        li.append(i)
n=0
while un!=1 and n<len(li):
    n=0
    for i in li:
        if un%i==0:
            un=un//i
            a.append(i)
        else:
            n=n+1
if n>=len(li):
    a.append(un)
b=[]
for i in a:
    if i not in b:
        b.append(i)

b.sort()
for i in range(len(b)):
    print(b[i],end=' ')

欢迎大家留言交流!

猜你喜欢

转载自blog.csdn.net/jiahuiandxuehui/article/details/113621882