Adam Number
Last Updated :
16 Feb, 2023
Given a number n, write a program to check whether given number is Adam Number or not.
Adam number is a number when reversed, the square of the number and the square of the reversed number should be numbers which are reverse of each other. Adam numbers upto 1000 are: 0, 1, 2, 3, 11, 12, 13, 21, 22, 31, 101, 102, 103, 111, 112 , 113, 121, 122, 201, 202, 211, 212, 221, 301, 311.
Examples :
Input : 12
Output : Adam Number
Explanation:
Square of 12 = 144
Reverse of 12 = 21
Square of 21 = 441
Now Square of 12 and square of reverse of 12 are
reverse of each other. Therefore 12 is Adam number.
Input : 14
Output : Not a Adam Number
Steps to find Adam number :
Step 1: Find square of number.
Step 2: Find reverse of number.
Step 3: Find square of number in Step 2.
Step 4: Find reverse of number in Step 3.
Step 5: Find whether number obtained in Step 4 and Step 1 are equal or not.
C++
#include <bits/stdc++.h>
using namespace std;
int reverseDigits( int num)
{
int rev = 0;
while (num > 0)
{
rev = rev * 10 + num % 10;
num /= 10;
}
return rev;
}
int square( int num)
{
return (num * num);
}
bool checkAdamNumber( int num)
{
int a = square(num);
int b = square(reverseDigits(num));
if (a == reverseDigits(b))
return true ;
return false ;
}
int main()
{
int num = 12;
if (checkAdamNumber(num))
cout << "Adam Number" ;
else
cout << "Not a Adam Number" ;
return 0;
}
|
Java
public class Main {
static int reverseDigits( int num)
{
int rev = 0 ;
while (num > 0 )
{
rev = rev * 10 + num % 10 ;
num /= 10 ;
}
return rev;
}
static int square( int num)
{
return (num * num);
}
static boolean checkAdamNumber( int num)
{
int a = square(num);
int b = square(reverseDigits(num));
if (a == reverseDigits(b))
return true ;
return false ;
}
public static void main(String[] args)
{
int num = 12 ;
if (checkAdamNumber(num))
System.out.println( "Adam Number" );
else
System.out.println( "Not a Adam Number" );
}
}
|
Python3
def reverseDigits(num) :
rev = 0
while (num > 0 ) :
rev = rev * 10 + num % 10
num / / = 10
return rev
def square(num) :
return (num * num)
def checkAdamNumber(num) :
a = square(num)
b = square(reverseDigits(num))
if (a = = reverseDigits(b)) :
return True
else :
return False
num = 13
if (checkAdamNumber(num)) :
print ( "Adam Number" )
else :
print ( "Not a Adam Number" )
|
C#
using System;
public class main {
static int reverseDigits( int num)
{
int rev = 0;
while (num > 0)
{
rev = rev * 10 + num % 10;
num /= 10;
}
return rev;
}
static int square( int num)
{
return (num * num);
}
static bool checkAdamNumber( int num)
{
int a = square(num);
int b = square(reverseDigits(num));
if (a == reverseDigits(b))
return true ;
return false ;
}
public static void Main(String []args)
{
int num = 12;
if (checkAdamNumber(num))
Console.WriteLine( "Adam Number" );
else
Console.WriteLine( "Not a Adam Number" );
}
}
|
PHP
<?php
function reverseDigits( $num )
{
$rev = 0;
while ( $num > 0)
{
$rev = $rev * 10 + $num % 10;
$num = (int) $num / 10;
}
return $rev ;
}
function square( $num )
{
return ( $num * $num );
}
function checkAdamNumber( $num )
{
$a = square( $num );
$b = square(reverseDigits( $num ));
if ( $a == reverseDigits( $b ))
return 0;
return -1;
}
$num = 12;
if (checkAdamNumber( $num ))
echo "Adam Number" ;
else
echo "Not a Adam Number" ;
?>
|
Javascript
<script>
function reverseDigits(num)
{
let rev = 0;
while (num > 0)
{
rev = rev * 10 + num % 10;
num = parseInt(num / 10, 10);
}
return rev;
}
function square(num)
{
return (num * num);
}
function checkAdamNumber(num)
{
let a = square(num);
let b = square(reverseDigits(num));
if (a == reverseDigits(b))
return true ;
return false ;
}
let num = 12;
if (checkAdamNumber(num))
document.write( "Adam Number" );
else
document.write( "Not a Adam Number" );
</script>
|
Time Complexity: O(log10n) where n is a given number
Auxiliary Space: O(1)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...