天天看点

python将一个正整数分解质因数

质数又称为素数,要解决这个问题,我们首先要对输入的数字进行判断,判断其本身是否为素数。

如果为素数则其因式只有1与其本身。

def f3(n):#判断一个数字是否为素数
    list1=[]#创建空列表用以盛放元素
    for i in range(2,n):#对范围(2,n-1)依次取余
        if n%i==0:#这时代表n并非是个素数
            list1.append(i)
    if len(list1) == 0:
        return True
    else:
        return False
           

创建好这个函数之后,我们开始整体代码的编写

def f3(n):#判断一个数字是否为素数
    list1=[]
    for i in range(2,n):
        if n%i==0:
            list1.append(i)
    if len(list1) == 0:
        return True
    else:
        return False
def fundation(n):#定义主要函数
    l1 = []
    k=n
    if f3(n):#如果n是素数直接输出结果
        print('{}=={}*1'.format(n, n))
    else:#n如果不是素数进行后续处理
        while True:#无限进行循环对n进行处理
            for i in range(2,k):#k==n,即判断他除了1外的其他因子
                if n%i==0 and f3(i):#条件使i为n的一个因子,且是一个素数
                    l1.append(i)#将i添加进空列表备用
                    n=n//i#条件符合对n的值进行修改
            if f3(n):
                l1.append(n)
                break#处理至也为素数时跳出循环体,并将n添加进列表
    for j in range(len(l1)):
        print('{}*'.format(l1[0]),end='')
        l1.pop(0)#保证每次打印不同的元素
    else:
        print('1',end='')
    return ''#防止返回空值
n=int(input('输入一个数字:'))
print('{1}={0}'.format(n,fundation(n)))
           

这样就实现了我们的目的,谢谢大家的阅览