**Independent ****Reading**

**Good Numbers.**

A "good
number" is a number in which the sum of the individual digits of the
original number equals the sum of the individual digits of the prime factors
whose product is the original number. Note that 1 is not a prime number, and
therefore is never considered a prime factor of any number. This means that
prime numbers are *always* good
numbers. Write a program that will determine if a number in the range 2-32,767
is a good number.

**Input.**
Any number from 2 to 32,767. Prompt the user to
"Please enter a number:" from the keyboard. One execution of the
problem should handle one number. Hint: No more than 15 prime factors are
needed to make up the product of a number in this range.

**Output.**
The output should be the number that was entered, followed by either the word
"GOOD" (if it was a good number) or "NOT GOOD" if it was
not a good number).

**Example.**
The sum of the digits in the number 22 is 4 (2 + 2 = 4). The prime factors
whose product is 22 are 2 and 11. The sum of those digits is also 4 (2 + 1 +
1). The number 22 is, therefore, a good number. The output should be:

**22 GOOD**

Hints:

- Use
**System.out.print****("message");**for prompting the user - Use the following function
(embedded in a complete program) to read a number from the keyboard. For
this assignment, you may assume that the user will always enter a valid
integer.

import java.io.*;

public class Sample

{

public static void main(String[] args) throws IOException

{

int
n;

n = readInteger();

System.out.println
("Your number is: "
+ n);

}

public static int readInteger() throws IOException

/* Read an
integer from the keyboard */

{

String
s;

char c;

int
i = 0;

char[] charArray = new char[10];

System.out.println ("Enter a number:");

while ((c = (char) System.in.read())
!= '\n')

charArray[i++] = c;

s = String.copyValueOf(charArray, 0, i-1);

return Integer.parseInt(s);

}

}