Skip to content
Related Articles

Related Articles

Automorphic Number

Improve Article
Save Article
  • Difficulty Level : Basic
  • Last Updated : 20 Oct, 2022
Improve Article
Save Article

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 Practice

 Approach:

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

Below is the implementation of the above approach: 

C++




// C++ program to check if a number is Automorphic
#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 Automorphic
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");
    }
}

Python3




# Python program to check if a number is Automorphic
  
# 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.

C#




// C# program to check if a
// number is Automorphic
using System;
 
class GFG {
 
    // Function to check Automorphic number
    static 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
    public static void Main()
    {
        int N = 5;
 
        Console.Write(isAutomorphic(N) ? "Automorphic" : "Not Automorphic");
    }
}
 
// This code is Contributed by Nitin Mittal.

PHP




<?php
// PHP program to check if
// a number is Automorphic
 
// Function to check
// Automorphic number
function 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 -1;
 
        // Reduce N and square
        $N /= 10;
        $sq /= 10;
    }
 
    return 1;
}
 
// Driver code
$N = 5;
 
$geeks = isAutomorphic($N) ?
             "Automorphic" :
          "Not Automorphic";
    echo $geeks;
 
// This code is contributed by ajit
?>

Javascript




<script>
 
// Javascript program to check if
// a number is Automorphic
   
// Function to check
// Automorphic number
function isAutomorphic(N)
{
    // Store the square
    let 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 -1;
   
        // Reduce N and square
        N /= 10;
        sq /= 10;
    }
   
    return 1;
}
   
// Driver code
let N = 5;
   
let geeks = isAutomorphic(N) ?
             "Automorphic" :
          "Not Automorphic";
    document.write(geeks);
   
// This code is contributed by _saurabh_jaiswal
</script>

Output

Automorphic

Time Complexity: O(log10N)
Auxiliary Space: O(1)
 
This article is contributed by Sahil Chhabra. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!