def is_prime(x):

    if x == 1:

        return False

    elif x == 2:

        return True

    elif x % 2 == 0:

        return False

    l = x ** 0.5

    n = 3

    while n <= l:

        if x % n == 0:

            return False

        n += 2

    return True

 

def solve():

    n = int(input())

    print("{}: ".format(n), end='')

    ans = []

     

    while n % 2 == 0:

        n //= 2

        ans.append(2)

 

    d = 3

    while n >= d:

        if is_prime(d):

            while n % d == 0:

                n //= d

                ans.append(d)

        if is_prime(n):

            ans.append(n)

            break

        d += 2

 

    print(*ans)

 

solve()

def is_prime(x):

    # Perform prime number discrimination for odd numbers of 3 or more.

    return pow(2, x - 1, x) == 1



def solve():

    n = int(input())

    print("{}: ".format(n), end='')

    if is_prime(n):

        print(n)

    else:

        ans = []

        while n % 2 == 0:

            n //= 2

            ans.append(2)

        d = 3

        while d <= n ** 0.5:

            if is_prime(d):

                while n % d == 0:

                    n //= d

                    ans.append(d)

            d += 2

        if is_prime(n):

            ans.append(n)

        print(*ans)



solve()

def is_prime(x):
    if x == 1:
        return False
    elif x == 2:
        return True
    elif x % 2 == 0:
        return False
    l = x**0.5
    n = 3
    while n <= l:
        if x % n == 0:
            return False
        n += 2
    return True


def solve():
    n = int(input())
    print("{}: ".format(n), end="")
    ans = []
    while n % 2 == 0:
        n //= 2
        ans.append(2)
    d = 3
    while n >= d:
        if is_prime(d):
            while n % d == 0:
                n //= d
                ans.append(d)
        if is_prime(n):
            ans.append(n)
            break
        d += 2
    print(*ans)


solve()

def is_prime(x):
    # Perform prime number discrimination for odd numbers of 3 or more.
    return pow(2, x - 1, x) == 1


def solve():
    n = int(input())
    print("{}: ".format(n), end="")
    if is_prime(n):
        print(n)
    else:
        ans = []
        while n % 2 == 0:
            n //= 2
            ans.append(2)
        d = 3
        while d <= n**0.5:
            if is_prime(d):
                while n % d == 0:
                    n //= d
                    ans.append(d)
            d += 2
        if is_prime(n):
            ans.append(n)
        print(*ans)


solve()

-    if x == 1: -        return False -    elif x == 2: -        return True -    elif x % 2 == 0: -        return False -    l = x**0.5 -    n = 3 -    while n <= l: -        if x % n == 0: -            return False -        n += 2 -    return True +    # Perform prime number discrimination for odd numbers of 3 or more. +    return pow(2, x - 1, x) == 1 -    ans = [] -    while n % 2 == 0: -        n //= 2 -        ans.append(2) -    d = 3 -    while n >= d: -        if is_prime(d): -            while n % d == 0: -                n //= d -                ans.append(d) +    if is_prime(n): +        print(n) +    else: +        ans = [] +        while n % 2 == 0: +            n //= 2 +            ans.append(2) +        d = 3 +        while d <= n**0.5: +            if is_prime(d): +                while n % d == 0: +                    n //= d +                    ans.append(d) +            d += 2 -            break -        d += 2 -    print(*ans) +        print(*ans)