Python基础语法——循环(四)

前言

这是这一阶段对循环语法练习的一个实践练习分享及总结

题目

找出一个整数的所有最小因子,即所有因子均为素数因子,例如8的所有因子即为2,2,2。
思路解析:在编程前先进行梳理整个解题过程,首先是需要找到整数的因子,同时对因子进行素数的判断并将非素数因子进行分解,同时需要注意因子是成对出现的,而分解之后的素数因子是不变的。
下面是博主编写的源码:

#!/usr/local/bin/python
# encoding: utf-8
'''
test -- 软件流程开发学习 -- 显示一个整数的所有因子的素数因子(即将所有因子分解到最小因子)

@author:     Eric

@copyright:  2017 organization_name. All rights reserved.

@contact:    xj_lin@protonmail.com

@note:    关键思想是素因子可以构成所有的因子,所以不用遍历所选整数的所有因子
'''
def Division_factor(num):
    factor = 2
    while factor <= num/2:
        if num % factor == 0:
            judge = Prime(factor)
            if judge == 1:
                print(factor,"\t",end="")
            factor = int(num / factor)
            judge = Prime(factor)
            if judge == 1:
                print(factor,"\t",end="")
            else:
                Division_factor(factor)
            break#只要找到一个因子便不用再继续循环factor了
        else:
            factor += 1
def Prime(factor):
    k = 2
    isPrime = True
    while k <= factor/2:
        if factor % k == 0:
            isPrime = False
            break
        k += 1
    if isPrime:
        return 1
    else:
        return 0
if __name__ == "__main__":
    num = eval(input("请输入一个整数:"))
    Division_factor(num)
小结:

循环部分的学习到此告一个阶段,关键对循环的使用是如何判断合适需要,这样使用循环才能达到最佳的效果,而在今天这篇博文的练习过程中我便陷入了对多对因子的分解,这导致结果会有重复,在重新理清思绪之后才实现最终效果,虽然源码不像之前的练习的代码那样少,但是解题的思路很清晰,可以作为参考。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值