用python实现将一个正整数分解质因数

本文介绍了一个Python函数`prime_factors`,用于将正整数分解成质因数的列表。函数首先处理2的因数,然后从3开始检查奇数因数,最后检查是否还有大于2的质数作为因子。通过测试函数,例如60的质因数分解为[2,2,3,5]被正确输出。
摘要由CSDN通过智能技术生成

题目

将一个正整数分解质因数。例如:输入90,打印出90 = 2 × \times × 3 × \times × 3 × \times × 5。

解析

分解质因数是将一个正整数分解成若干个质因数相乘的形式。以下是基本步骤:

  1. 从最小的质数2开始。
  2. 如果这个质数可以整除该整数,则将整数除以这个质数,同时记录下这个质数。
  3. 继续用这个质数尝试除,直到不能整除为止。
  4. 然后用下一个质数重复上述步骤。
  5. 进行直到原整数减少到1。

例如,分解60的质因数:60 ÷ 2 = 30, 30 ÷ 2 = 15, 15 ÷ 3 = 5, 所以60的质因数是2, 2, 3, 5。

这个函数接受一个整数,并返回一个列表,其中包含的所有质因数。首先,它分解出所有的2,然后开始检查奇数因数。函数只需要检查到,因为所有大于的因数必定已经在分解过程中被捕获。如果最后大于2,那么本身也是一个质因数。

代码

def prime_factors(n):
    factors = []
    # 分解2的因数
    while n % 2 == 0:
        factors.append(2)
        n = n // 2

    # 现在n必定是奇数,可以从3开始检查更大的因数
    for i in range(3, int(n ** 0.5) + 1, 2):
        while n % i == 0:
            factors.append(i)
            n = n // i

    # 如果n是一个大于2的质数,它也会是一个因数
    if n > 2:
        factors.append(n)
    return factors


# 测试函数
print(prime_factors(60))  # 例如60的质因数分解

运行结果

在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@撒娇小小怪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值