题解 | #质数因子#(python循环解法)

质数因子

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

首先我们得知道一个整数x的质因子怎么求:
用x从小到大去除在2到图片说明 范围之间的整数。即从2开始除,如果能整除,记录下这个除数,然后用商去继续进行上述的操作,直到商为1;如果除不进,除数加一。如果一直加一,除数大于图片说明,则说明x的质因子只有它本身。
(注:
1、范围是[2:图片说明])的原因是,再往后就重复了( 因为如果它不是质数,那么它一定可以表示成两个数(除了1和它本身)相乘,这两个数必然有一个小于等于它的平方根。只要找到小于或等于的那个就行了
2、除法各个数的叫法:被除数图片说明 除数=商...余数
3、还有一个规律就是,求质因子时,用商继续去除的时候可以发现,后面能整出的数都比前面能整除的数大或等于。(eg.180 的质因子是2 2 3 3 5,后面的都>=前面的)

代码:

import sys
if name=='main':
        line=sys.stdin.readline().strip('\n') #标准输入流 
        x=int(line)
        res='' #用来存储输出的字符串*
        i=2
        while x!=1: #商不为1
            if x%i==0: #如果能整除
                res+=str(i) #将当前的除数(当前的一个质因子)加到res中
                res+=' '
                x=x/i #将a变成商,继续上述操作
            else: #不能能整除
                if i>int(x**0.5): #如果除数比根号x大,则说明x的质因子只有它本身,故将x加res,结束循环
                    res+=str(int(x))
                    res+=' '
                    break
                else:#不能能整除,但除数又还没大于根号x
                    i+=1
        print(res)
全部评论
这个好像没有判断是不是质数吧?
点赞 回复 分享
发布于 2021-09-04 11:05
if __name__ == "__main__"才对
点赞 回复 分享
发布于 2021-08-27 11:08

相关推荐

不愿透露姓名的神秘牛友
03-30 21:35
爱蜜莉雅碳劝退测开:裁员裁大动脉了
点赞 评论 收藏
分享
04-02 10:09
门头沟学院 Java
用微笑面对困难:这里面问题还是很多的,我也不清楚为啥大家会感觉没啥问题。首先就是全栈开发实习9个月的内容都没有java实习生的内容多,1整个技术栈没看出太核心和难点的内容,感觉好像被拉过去打杂了,而且全栈基本上很容易被毙。里面能问的bug是在太多了比如L:继承 BaseMapper 可直接使用内置方法’。请问你的 BaseMapper 是如何扫描实体类注解如果瞬时产生 100 个上传任务,MySQL 的索引设计是否会有瓶颈?你做过分库分表或者索引优化吗?全栈的内容可以针对动态难点去搞,技能特长写在下面吧,你写了这么多技能,项目和实习体现了多少?你可以在项目里多做文章然后把这个放下去,从大致来看实习不算太水,有含金量你也要写上内容针对哨兵里面的节点变化能问出一万个问题,这个很容易就爆了。
提前批简历挂麻了怎么办
点赞 评论 收藏
分享
评论
17
3
分享

创作者周榜

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