题解 | #质数因子#

质数因子

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

def is_prime(x):
    if x == 1:
        return False
    for _i in range(2, 1+int(x**0.5)):
        if x % _i == 0:
            return False
    return True

n = int(input())
res = []
i = 2
while i < 1+int(n**0.5):
    # 如果是因子,且是质数,则不断除以此数
    if  n % i == 0:  # and is_prime(i):  # 由于n已经对比i小的所有数取余过了,所以如果能对i取余为0,则i必是质数
        while n % i == 0:
            n //= i
            res.append(str(i))
    i += 1
if is_prime(n):
    res.append(str(n))
print(' '.join(res))

全部评论

相关推荐

昨天 22:16
已编辑
武汉大学 运营
点赞 评论 收藏
分享
03-27 17:35
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务