Problem:
Prime Factorization

Factorize a given integer n.

Input

n

An integer n is given in a line.

Output

Print the given integer n and :. Then, print prime factors in ascending order. If n is divisible by a prime factor several times, the prime factor should be printed according to the number of times. Print a space before each prime factor.

Constraints

2 ≤ n ≤ 109

Sample Input 1

12

Sample Output 1

12: 2 2 3

Sample Input 2

126

Sample Output 2

126: 2 3 3 7

Solution in C# (judge verdict: Accepted)

using System;
class test
{
    static void Main(string[] args)
    {
        int a = int.Parse(Console.ReadLine());
        Console.Write(a + ":");
        while (a % 2 == 0)
        {
            a /= 2;
            Console.Write(" 2");
        }
        for(int i = 3; i * i <= a; i += 2)
        {
            while (a % i == 0)
            {
                a /= i;
                Console.Write(" " + i);
            }
        }
        if (a != 1)
        {
            Console.WriteLine(" " + a);
        }
        else
        {
            Console.WriteLine();
        }
    }
}