题解 | #质数因子#

质数因子

http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

递归可用迭代代替:

某个数的质子如果不是这个数本身,那么质子一定小于该数的开方

如果A%b!=0 ,A%c==0 且A//c=d 那么b一定不是d的质子

结合以上两点:

        num=int(input())
        index=2
        high=math.sqrt(num)
        cache=[]
        while index<=high:
            if num%index==0:
                num=num//index#对num进行迭代,以此消除递归
                high = math.sqrt(num)#遍历的上届应该为num的开方
                cache.append(index)
                print(index,end=" ")
            else:
                index+=1#如果index不是num的质子,那也不可能时迭代后num的质子
        print(num)
全部评论

相关推荐

2025-12-22 16:31
已编辑
桂林电子科技大学 Python
很奥的前端仔:如果你接了offer 临时又说不去 hr确实要多做一些工作。 当然如果是接offer之前当我没说
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务