```/**
*  This is a class implements a Java application that finds and prints the
*  prime factors of a given number.
*
*  It uses a recursive method to examine each of the different values of Y.
*  The value from the recursive method is a void.  It uses a loop to divide X
*  by Y as many times as needed.  The number X must is specified as the only
*  command line argument to the program.
*
* @author     Cheng Yu
* @assignment TA 2
* @date       Jan 28, 2010
* @bugs       None
*/
/**
* The entry point of the application.
*
* @param args The command line arguments.
*/
public static void main(final String[] args) {

// If the command line has anything other than a single integer, the
// program prints an error message and exits.
if (args.length != 1) {
System.err.println("The argument is not a single input.");
System.exit(1);
}

// If the command line input is not an integer, the program prints an
// error message and exits.
int x = 0;
try {
x = Integer.parseInt(args);
} catch (final NumberFormatException e) {
System.err.println("The argument is not an integer.");
System.exit(2);
}

// If the command line input is an integer smaller than 2, the program
// prints prints an error message and exits.
if(x < 2) {
System.err.println("The argument is not an integer greater than 1.");
System.exit(3);
}

// Call the recursive function and print out the prime factors.
System.out.print(x + "'s prime factors:");
System.out.println();

// Exit cleanly while debugging from Eclipse.
System.exit(0);
}

/**
* Finds and print out the prime factor of a specified integer x.
*
* @param x the integer to be examined.
* @param y the prime factors of the integer x.
*/
private static void findPrimeFactors(int x, final int y) {

// If y is greater than the square root of x, the next prime factor of
// x is itself.  Never print a factor of "1".
if (y > Math.sqrt(x)) {
if (x != 1)
System.out.print("\t" + x);
return;
}

// If y is a prime factor, print y. Then dive x by y as many times as
// needed.
if (x % y == 0) {
System.out.print("\t" + y);
while(x % y == 0)
x = x / y;
}

// Call the function with either modified or original x. Check if the
// next y is a primer factor.
findPrimeFactors(x, y + 1);
}
}
```