C++ Program to Check if a Number is an Adam Number

«
»

This is a C++ Program to Check if a Number is an Adam Number.

Problem Description

The program takes a number and checks if it is an Adam number. A number when squared, reversed, its root is found and is reversed again is equal to the original number, then it is called an Adam number.

Problem Solution

1. The number to be checked is entered.
2. It is squared and reversed.
3. Square root of the reversed number is found.
4. It is reversed again and compared with the original number.
5. If they are same, the number entered is an Adam number, else not.
6. Then result is printed.
7. Exit.

advertisement
C++ Program/Source code

Here is the source code of C++ Program to Check if a Number is an Adam Number. The program output is shown below.

  1. #include<iostream>
  2. #include<math.h>
  3. using namespace std;
  4. int main ()
  5. {
  6.     int num, temp, r1, r2, sq, rev1 = 0, rev2 = 0;
  7.     cout << "Enter a number : ";
  8.     cin >> num;
  9.     temp = num * num;
  10.     while (temp != 0)
  11.     {
  12.         r1 = temp % 10;
  13.         rev1 = rev1 * 10 + r1;
  14.         temp = temp / 10;
  15.     }
  16.     sq = sqrt(rev1);
  17.     while (sq != 0)
  18.     {
  19.         r2 = sq % 10;
  20.         rev2 = rev2 * 10 + r2;
  21.         sq = sq / 10;
  22.     }
  23.     if (rev2 == num)
  24.         cout << "\n" << num << " is an Adam number.";
  25.     else
  26.         cout << "\n" << num << " is not an Adam number.";
  27.     return 0;
  28. }
Program Explanation

1. The user is asked to enter the number to be checked and stored in the variable ‘num’.
2. The variables ‘rev1’ and ‘rev2’ are initialized as 0.
3. The square of the original number is stored in the variable ‘temp’.
4. The reverse of temp is calculated and stored in rev1.
5. The square root of rev1 is calculated using the function ‘sqrt’ under math.h library, and its reverse is stored in rev2.
6. If rev2 is equal to the original number entered i.e. num, then it is an Adam number, else not.
7. The result is then printed.

advertisement
Runtime Test Cases
Case 1 :
Enter a number : 12
12 is an Adam number.
 
Case 2 :
Enter a number : 200
200 is not an Adam number.
 
Case 3 :
Enter a number : 0
0 is an Adam number.

Sanfoundry Global Education & Learning Series – C++ Programs.

To practice all C++ programs, here is complete set of 1000+ C++ Programming examples.

advertisement

advertisement
advertisement
advertisement
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He is Linux Kernel Developer & SAN Architect and is passionate about competency developments in these areas. He lives in Bangalore and delivers focused training sessions to IT professionals in Linux Kernel, Linux Debugging, Linux Device Drivers, Linux Networking, Linux Storage, Advanced C Programming, SAN Storage Technologies, SCSI Internals & Storage Protocols such as iSCSI & Fiber Channel. Stay connected with him @ LinkedIn