题解 | #质数因子#

质数因子

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)
全部评论

相关推荐

09-18 20:41
百度_Java
要个offer怎么这...:哈哈哈哈哈哈,我也拿了0x10000000个offer,秋招温啦啦啦,好开心
我的秋招日记
点赞 评论 收藏
分享
入职华为的第一步:投递
投递华为技术有限公司等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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