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

将一个正整数分解质因数

例如输入90,输出:90=2*3*3*5

对n进行分解质因数,应先找到一个最小的质数i,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>i,但n能被i整除,则应打印出i的值,并用n除以i的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被i整除,则用i+1作为i的值,重复执行第一步。

1. 解法一

n = int(input("请输入一个数:"))
print(n,'=',end="")
i = 2
while i <= n:
    if i == n:
        print(i, end="")
        break
    elif n % i == 0:
        print(i, end="*")
        n = n / i
    else:
        i += 1

2. 解法二

n = int(input("请输入一个数:"))
print(n,' = ',end="")
if n <= 0:
    print("你输的数字小于零啦")
i=2
if n!=1:
    while i!= n:
        if n % i == 0:
            print(i,end=' * ')
            n = n // i
        else:
            i+=1
    print(i,end='')
else:
    print(n)

3. 解法三

num = int(input('请输入一个数:'))

a = '{0}='.format(num)
flag = True
while flag:
    for i in range(2,num+1):
        # if not num % i:
        if num % i == 0:
            if i == num:
                flag = False
                a = a + str(i)
            else:
                a = a + str(i) + '*'
                num = num//i
            break
print(a)
num = int(input('请输入一个数:'))

def fenjie(num):
    a = '{0}='.format(num)
    flag = True
    while flag:
        for i in range(2,num+1):
            if not num % i:
                if i == num:
                    flag = False
                    a = a + str(i)
                else:
                    a = a + str(i) + '*'
                    num = num//i
                break
    return a
print(fenjie(num))

4. 解法四

# ① 询问输入
x = int(input("请输入一个数:"))
print(x ,'= ',end=' ')
# ② 进行分解
temp = [] 
while x!=1:
    for i in range(2,x+1):
        if x % i == 0:
            temp.append(i) 
            x = x // i
            break
# ②循环遍历输出
for i in range(len(temp)):
    if i!=len(temp)-1:
        print("%d * " % temp[i],end='')
    else:
        print("%d " % temp[i],end='')

输出结果如下所示:
在这里插入图片描述
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1024节

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值