﻿ C Program: Find the happy numbers between 1 to 1000 - w3resource

# C Exercises: Find the happy numbers between 1 to 1000

## C Numbers: Exercise-14 with Solution

Write a program in C to find the happy numbers between 1 and 1000.

Sample Solution:

C Code:

``````# include <stdio.h>
# include <math.h>
# include <stdlib.h>
# include <stdbool.h>

int SumOfSquNum(int givno)
{
int SumOfSqr = 0;
while (givno)
{
SumOfSqr += (givno % 10) * (givno % 10);
givno /= 10;
}
return SumOfSqr;
}
bool checkHappy(int chkhn)
{
int slno, fstno;
slno = fstno = chkhn;
do
{
slno = SumOfSquNum(slno);
fstno = SumOfSquNum(SumOfSquNum(fstno));
}
while (slno != fstno);
return (slno == 1);
}
int main()
{
int j,ctr;
printf("\n\n Find the Happy numbers between 1 to 1000: \n");
printf(" ----------------------------------------------\n");
printf(" The happy numbers between 1 to 1000 are: ");

for (j=1;j<=1000;j++)
{
if (checkHappy(j))
printf("%d ",j);

}
printf("\n");
}
```
```

Sample Output:

``` The happy numbers between 1 to 1000 are: 1 7 10 13 19 23 28 31 32 44 49.....
```

Pictorial Presentation: Flowchart: C Programming Code Editor:

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿

## C Programming: Tips of the Day

What does (x ^ 0x1) != 0 mean?

The XOR operation (x ^ 0x1) inverts bit 0. So the expression effectively means: if bit 0 of x is 0, or any other bit of x is 1, then the expression is true.

Conversely the expression is false if x == 1.

So the test is the same as:

if (x != 1)

and is therefore (arguably) unnecessarily obfuscated.

Ref :https://bit.ly/2NIisQM

We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook