I wrote this program, to determine if any given number is happy, and would like to know of any improvements that can be made to make it better. I have tested it, but whether or not it works perfectly I have no idea, there might be some numbers that get through, although I doubt it.
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class HappyNumber
{
public static void main(String[] args)
{
System.out.print("Please enter a number: ");
int number = new Scanner(System.in).nextInt(), value;
Set<Integer> unique = new HashSet<Integer>();
while (unique.add(number))
{
value = 0;
for (char c : String.valueOf(number).toCharArray())
value += Math.pow(Integer.parseInt(String.valueOf(c)), 2);
number = value;
}
System.out.println(number == 1 ? "Happy" : "Not Happy");
}
}