题解 | #质数因子#

质数因子

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

def is_prime(n):
    if n <= 1:
        return False
    elif n <= 3:
        return True
    elif n % 2 == 0 or n % 3 == 0:
        return False
    i = 5
    while i * i <= n:
        if n % i == 0:
            return False
        i += 2
    else:
        return True

def try(a = int(input())):
    b = []
    c = []
    if is_prime(a):
        print(int(a))
    for i in [2,3,5]:
        if not is_prime(a):
            while a%i == 0:
                print(i, end=' ')
                a //= i
                if is_prime(a):
                    print(int(a))
                    return
    for i in range(7,a//2+1):
        if is_prime(i):
            b.append(i)
    
    for i in b:
        if a % i == 0:
            c.append(i)
    
    for i in c:
        if not is_prime(a):
            while a%i == 0:
                print(i, end=' ')
                a /= i
                if is_prime(a):
                    print(int(a))
                    return
try()

        
    

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务