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)

#include <stdio.h>


int main(void)
{
	int flag;
	
	long long int n,a,b;
	
	scanf("%lld",&n);
	
	printf("%lld:",n);
	
	while(n!=1){
		flag=0;
		printf(" ");
		
		for(a=2;a<=n;a++){
			flag=0;
			if(n%a==0){
				for(b=2;b<a;b++){
					if(a%b==0 && a!=b) flag=1;
				}
			}
			else flag=1;
			
			if(flag==0){
				printf("%lld",a);
				n/=a;
				break;
			}
		}
	}
	
	printf("\n");
	
	return 0;
}