HJ6 题解 | #质数因子#

质数因子

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

#类似短除法的思想:
#短除法:从最小的质数除起,一直除到结果为质数为止。

#本解法:
#定义输入为a,遍历变量为i
#1、从最小的质数除起,能除则除,不能除就递增,找到之后相除,更新a,存储i
#2、重复1,直到不满足i*i<a
#3、检查一下最后剩下这个a是否为质数


a=int(input())
b=[]
i=2
while(i*i<=a):#这里用这种方式降低时间复杂度,不然最后一个样例过不了
    if a%i==0:#发现因数,这个因数必然是质数,因为如果i是合数,则在扫描到i之前就会扫描到他的质因数
        b.append(i)
        a=a//i#更新a
        i=2#重置i
        continue
    else:
        i+=1
if a>1:#最后剩下的a,要么是1,要么是一个质数
    b.append(a)
for i in b:
    print(i,end=" ")

思路较为简单,代码注释就写得下,这里不赘述。

#华为od#
华为HJ103所有解法 文章被收录于专栏

这是我准备华为od面试的专属专栏,我会把自己的解法更新在里面,我会尽量写清楚自己的思路以及多写关键注释,希望对阅读的人有帮助~~~

全部评论

相关推荐

有担当的灰太狼又在摸鱼:零帧起手查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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