In this tutorial you will learn about the C Program to print all Happy Numbers till N and its application with practical example.
In this tutorial, we will learn to create a C program that will find Happy number using C programming.
Prerequisites
Before starting with this program we assume that you are best aware of the following C programming topics:
- C Operators.
- C loop statements.
- C while and for Loop.
- Conditional statement.
What Is Happy Number ?
Happy number is a number which finally ends at 1 when it is replaced by the sum of the square of its digits repeatedly.
Example
let’s take an example here 13 is a happy number
, and .
On the other hand,The unhappy number will result in a cycle of 4, 16, 37, ….
2 is not a happy number let’s have a look an example of this
and this process continues to infinite cycle without ever reaching 1
C Program to print all Happy Numbers till N
In this program we will find that given number is happy number or not using for loop.
Firstly we declare required header file and variable and also initiates required values in variable. Next we take value from user at run time and then after we will find that the given value is happy number or not.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#include<stdio.h> int main() { int i,j,no,happy_no,tmp,sum=0; printf("Enter any value till you want print happy numbers\n"); scanf("%d",&happy_no); // taking value from user for(i=1;i<=happy_no;i++) // loop until reaches to given value { sum=0; no=i; tmp=no; while(sum!=1 && sum!=4) { sum=0; while(no>0) { j=no%10; sum+=(j*j); no=no/10; } no=sum; } if(sum==1) // ending value of number { printf("%d\n",i); // printing happy number } } return(0); } |
Output
A happy number is defined by the following steps:
- STEP 1: START.
- STEP 2: SET tmp =0, sum =0.
- STEP 3: REPEAT STEP 4 to 6 UNTIL (no>0)
- STEP 4: tmp=no%10.
- STEP 5: sum = sum + (tmp*tmp)
- STEP 6: no= no/10.
- STEP 7: RETURN sum.
- STEP 8: END.
- If the number given is greater than 0 (no>0 ),First we find remainder by dividing the number with 10 ( tmp=no %10 ).
- Calculate square of tmp and add it to sum.
- Then divide number by 10 ( no=no/10).
- Repeat the steps from 4 to 6 until the sum of the square of all digits present in number has been calculated.
- Finally, print the sum.
So finally we get all the happy number from one to given number by user…..