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: Time Limit Exceeded)

// ?´??????°????§£

using System.Text;
public class PrimeFactorize{
	public static void Main(){
		// ????????°????????????
		decimal n = decimal.Parse(System.Console.ReadLine());
		
		StringBuilder sb = new StringBuilder();
		sb.Append(n.ToString() + ":");
		// ?´??????°????§£?????????
		decimal t = 2;
		while(t < n)
		{
			if(n % t == 0)
			{
				n /= t;
				sb.Append(" " + t.ToString());
				t = 2;
			}
			else
			{
				t++;
			}
		}
		sb.Append(" " + n.ToString());
		System.Console.WriteLine(sb.ToString());
	}
}