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: Accepted)

import java.util.Scanner;
 
public class Main {
    public static void main(String args[]){
        try(Scanner sc=new Scanner(System.in)){
            int n=sc.nextInt();
            System.out.print(n+":");
            int x=n;
            for(int i=2; i*i<=x; i++) {
                while(n%i==0) {
                    System.out.print(" "+i);
                    n/=i;
                }
            }
            if(n!=1)
                System.out.println(" "+n);
            else
                System.out.println();
 
 
 
        }
    }
}