题解 | #质数因子#

质数因子

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

# 需要证明:一个数至多只有一个大于其平方根的质因数
#设数a,其平方根b,若存在不等质因数c、d满足d>c>b,则有a = b^2 < c*d 
#而又因cd均为a的因数且互质,则a至少为cd的最小公倍数,即a >= c*d,矛盾
#故a的大于平方根b的质因数至多只有一个。容易证明,这种情况出现当且仅当a为质数,仅有一个质因数的情况。
# 故解法:先检测不高于平方根的质因数,检测到一个输出一次并直接除掉。若最后除尽a为1,说明质因数已全部取出;若a未除尽>2,说明a存在高于平方根的质因数,即a必为质数,此时质因子只有a自己,直接输出即可


import math
num = int(input())
for i in range(2, int(math.sqrt(num))+1):
    while num%i == 0:
        print(i, end=' ')
        num = num // i
if num > 2:
    print(num)

全部评论

相关推荐

面试官问:为什么不考研?该怎么回答啊😭我说现在的就业环境差到底了,还有就是我不想学数学,感觉面试官笑容都凝固了😢
DayDayNoBug的鲜芋球:我说的是“上学期其实尝试过去探索一些研究的方向,但感觉那些对我来说都没有很大的吸引力,相比起研究我可能更喜欢开发这种实践性的东西,它会让我觉得很有意思并且会为之深入进去”(虽然也不知这个回答怎么样哈哈哈哈哈哈)
点赞 评论 收藏
分享
是正式编吗?稳定吗?工资待遇怎么样?转正可以转到腾讯总部吗?
Java抽象带篮子:不是,不稳定,一般,不行
投递腾讯云智研发等公司9个岗位 >
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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