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: Wrong Answer)

#include <stdio.h>
int main(void){
    int n,i,j,y,a;
    scanf("%d",&n);
    printf("%d:",n);
    for(i=2;i <= 10000;i++){
        y=0;
        for(j=1;j <= i;j++){
            if(i%j == 0) y++;
        }
        if(y == 2) a=i;
        while(1){
            if(n%a == 0) printf(" %d",a);
            if(n%a == 0) n=n/a;
            if(n%a != 0) break;
        }
    }
    printf("\n");
}