题解 | #质数因子#(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

相关推荐

07-02 13:50
闽江学院 Java
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
17
3
分享

创作者周榜

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