# Automorphic Number

Given a number N, the task is to check whether the number is Automorphic number or not. A number is called Automorphic number if and only if its square ends in the same digits as the number itself.

Examples:

```Input  : N = 76
Output : Automorphic
Explanation: As 76*76 = 5776

Input  : N = 25
Output : Automorphic
As 25*25 = 625

Input : N = 7
Output : Not Automorphic
As 7*7 = 49
```

## Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

```1. Store the square of given number.
2. Loop until N becomes 0 as we have to match
all digits with its square.
i) Check if (n%10 == sq%10) i.e. last digit
of number = last digit of square or not
a) if not equal, return false.
ii) Otherwise continue i.e. reduce number and
square i.e. n = n/10 and sq = sq/10;
3- Return true if all digits matched.
```

## C++

```// C++ program to check if a number is Authomorphic
#include<iostream>
using namespace std;

// Function to check Automorphic number
bool isAutomorphic(int N)
{
// Store the square
int sq = N*N;

// Start Comparing digits
while (N > 0)
{
// Return false, if any digit of N doesn't
// match with its square's digits from last
if (N%10 != sq%10)
return false;

// Reduce N and square
N /= 10;
sq /= 10;
}

return true;
}

// Driver code
int main()
{
int N = 5;

isAutomorphic(N) ? cout << "Automorphic"
: cout << "Not Automorphic";

return 0;
}
```

## Java

```// Java program to check if a number is Authomorphic
class Test
{
// Function to check Automorphic number
static boolean isAutomorphic(int N)
{
// Store the square
int sq = N*N;

// Start Comparing digits
while (N > 0)
{
// Return false, if any digit of N doesn't
// match with its square's digits from last
if (N%10 != sq%10)
return false;

// Reduce N and square
N /= 10;
sq /= 10;
}

return true;
}

// Driver method
public static void main(String[] args)
{
int N = 5;

System.out.println(isAutomorphic(N) ? "Automorphic" :
"Not Automorphic");
}
}
```

## Python

```# Python program to check if a number is Authomorphic

# Function to check Automorphic number
def isAutomorphic(N) :

# Store the square
sq = N*N

# Start Comparing digits
while (N > 0) :

# Return false, if any digit of N doesn't
# match with its square's digits from last
if (N%10 != sq%10) :
return False

# Reduce N and square
N /= 10
sq /= 10

return True

# Driver code
N = 5
if isAutomorphic(N) :
print "Automorphic"
else :
print  "Not Automorphic"

# This Code is contributed by Nikita Tiwari.
```

Output:

```Automorphic
```

This article is contributed by Sahil Chhabra. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

# GATE CS Corner    Company Wise Coding Practice

1 Average Difficulty : 1/5.0
Based on 5 vote(s)