Start New Discussion within our Software Development Community

hi, i m very new here and also in programming world. i tried to make a program that prints happy and unhappy numbers. but that prints only unhappy numbers and then it goes back to while loop where j remain 0. how can i fix the problem? plz someone help me.

import java.util.*;
public class HappyNumber{
  public static void main(String [] args){
    Scanner sc = new Scanner(System.in);
    int x = sc.nextInt();

    int [] a = new int [1000];
    a[0] = x;
    double sum = 0;
    int j = 0;
    int p = 0;
    while( j<1000){
      x = a[j];
      for(int i = 0; x>0; i++){
        int m = x%10;
        x = x/10;
        sum = sum + Math.pow(m,2);
        p = (int)sum;
       }
        a[j+1] = p;


        if(a[j+1]==0){
        System.out.println(a[0] +" is a Unappy number");
        break;
        }else if(a[j+1]==4){
        System.out.println(a[0] +" is a Unappy number");
        break;
        }else if(a[j+1]==16){
        System.out.println(a[0] +" is a Unappy number");
        }else if(a[j+1]==20){
        System.out.println(a[0] +" is a Unappy number");
        }else if(a[j+1]==37){
        System.out.println(a[0] +" is a Unappy number");
        }else if(a[j+1]==42){
        System.out.println(a[0] +" is a Unappy number");
        }else if(a[j+1]==58){
        System.out.println(a[0] +" is a Unappy number");
        }else if(a[j+1]==89){
        System.out.println(a[0] +" is a Unappy number");
        }else if(a[j+1]==145){
        System.out.println(a[0] +" is a Unappy number");
       }else if(a[j+1]==1){
        System.out.println(a[0] +" is a Happy number");
        }else{
         j++;
       }
    }
  }
}
This question has already been answered. Start a new discussion instead.