This is a java program for happy number but before that what is a happy number.

A number whose sum of the square of digits is **ultimatly **equal to 1 is a happy number. By ultimately we mean that starting with any positive number we continue the addition of square of digits till we get a single digit number (0 ~ 9). But the on whose sum is ultimately 1 is a happy number.

**Example #1:**13 ; 1

^{2}+ 3

^{2}= 1 + 9 =10 ; 1

^{2}+ 0

^{2}= 1 (Thus a happy number)

**Example #2:**32; 3 2 + 2 2 = 9 + 4 = 13; and in Example#1 13 is already a happy number;

Some of the first happy numbers are: 1, 7, 10, 13, 19, 23, 28, 31, 32, 44, 49, 68, 70, 79, 82, 86, 91, 94, 97, 100, 103, 109, 129, 130.

**Java program to check for a happy number**

**Java program to check for a happy number**

import java.io.*; class happynumber { public static void main(String args[])throws Exception { int i,j; happyno obj=new happyno(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("enter a number : "); i=Integer.parseInt(br.readLine()); while((j=obj.happy(i))/10!=0) // You have to check the sum of all digits until a single digit is achieved i.e. sum=1,2,3,..9 { i=j; // If sum of digits= 19 it then again goes to 1+9 =10 and again 1+0= '1' a single digit to check if 1 or not } if ( j==1) System.out.println("It is a happy number "); else System.out.println("Not a happy number"); } int happy(int n) { if(n/10==0) return n*n; else return (int)Math.pow(n%10,2)+ happy(n/10); } }

** OUTPUT: **

*Incoming terms:* Java program to check a happy number, program to check for a happy number.

/*

A better program for happy numbers

*/

import java.util.*;

public class HAPPY

{

public static void happy(String[]args)

{

int num,sum=0,a,b;

Scanner sc = new Scanner(System.in);

System.out.print(“Enter a number : ” );

num = sc.nextInt();

b=num;

sum=num;

do{

num=sum;sum=0;

do{

a=num%10;

sum+=a*a;

num/=10;

}while(num>0);

}while(sum>9);

if(sum==1)

System.out.println(b+” is a Happy number”);

else

System.out.println(b+” is a sad number “);

}

}

//Another approach

import java.util.*;

class HN

{

public static void main(String args[])

{

Scanner sc=new Scanner(System.in);

int n=sc.nextInt();

int n1=n;

int sq=0,sq1=0;

while(n>0)

{

int r=n%10;

sq+=r*r;

while(sq>9)

{

int r1=sq%10;

sq1+=r1*r1;

sq=sq/10;

}

n=n/10;

}

if(sq==1)

System.out.print(n1+” is a happy number”);

else

System.out.print(n1+” is not a happy number”);

}

}

its wrong

this program is giving wrongoutput

it is showing that 13 is not a happy no.

can anyone solve it by using for loop

Let us know if you have done it. However Its a very easy thing. If you need it then comment back. You can also submit your code. !