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 JAVA (judge verdict: Wrong Answer)

import java.util.*;

class Main{

public static int bunkai(int n){
    int r = 0;
    for(int i=2; i<=n; i++){
        if(n % i == 0){
            r = i;
            break;
        }
    }

    return r;
}    

public static void main(String args[]){

    Scanner sc = new Scanner(System.in);
    String line = sc.nextLine();
    int n = Integer.parseInt(line);
    ArrayList<Integer> kotae = new ArrayList<>();

    while(n != 1){
        kotae.add(bunkai(n));
        n = n / bunkai(n);
    }

    for(int item : kotae){
        System.out.print(item + " ");
    }
}

}