Python 每日一题(分解质因数)

Python 每日一题:锻炼Python语法的运用,思维逻辑的锻炼,算法能力的培养。


题目:

   输入一个数,将其分解质因数。

   如:12 = 2 × 2 × 3     13 = 13 x 1

分析:

   需分解数记为n,循环去查找区间 [2, n] 之间数 n 的因数,如果存在因数 i,数n需要变为 n = n // i ,如果 n 除到了 1,则表示 n 已经没有其他因数,则打印其此次循环的因数 i,否则再继续 利用除以一个因数后的n 再次去除此次循环的因数 i ,如果为0,则表示 n 的因数还是该因数 i,若无此因数 i 则结束循环,循环再次从 [2, n] 之间获取一个因数数 i,判断是否存在因数。由于素数是没有除了自身与1外,没有其他的因数,则设置一个变量flag,用于记录是否有因数,如果没有因数,则打印 素数 = 素数 × 1。


程序实现:

def factorization_prime_factor(n):
    if n > 1:
        print(n, '=', end=' ')
        for i in range(2, n + 1):
            flag = 0
            while n % i == 0:
                n //= i
                if n == 1:
                    print(i, end='')  
                else:
                    print('%d × ' % i, end='')
                flag = 1
        if flag == 1:
            print(' × 1', end='')
    else:
        print(f'{n} 无法进行质因数分解')

factorization_prime_factor(12)

结语】以上整个程序的实现逻辑,还存在很多不全面的地方,欢迎各位大佬指点;如果觉得笔者不易,请给予点赞,给予我记录更多文章的动力!! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值