Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Find Prime Adam integers in the given range [L, R]

  • Last Updated : 08 Nov, 2021

Given two numbers L and R which signifies a range [L, R], the task is to print all the prime adam integers in this range.
Note: A number which is both prime, as well as adam, is known as a prime adam number. 
Examples: 
 

Input: L = 5, R = 100 
Output: 11 13 31 
Explanation: 
The three numbers 11, 13, 31 are prime. They are also adam numbers. 
Input: L = 70, R = 50 
Output: Invalid Input 
 

Hey! Looking for some great resources suitable for young ones? You've come to the right place. Check out our self-paced courses designed for students of grades I-XII

Start with topics like Python, HTML, ML, and learn to make some games and apps all with the help of our expertly designed content! So students worry no more, because GeeksforGeeks School is now here!

 



 

Approach: The idea used in this problem is to first check whether a number is prime or not. If it is prime, then check whether it is an adam number of not: 
 

Below is the implementation of the above approach: 
 

C++




// C++ program to find all prime
// adam numbers in the given range
#include <bits/stdc++.h>
using namespace std;
 
int reverse(int a)
{
    int rev = 0;
    while (a != 0)
    {
        int r = a % 10;
 
        // Reversing a number by taking
        // remainder at a time
        rev = rev * 10 + r;
        a = a / 10;
    }
    return (rev);
}
 
// Function to check if a number
// is a prime or not
int prime(int a)
{
    int k = 0;
 
    // Iterating till the number
    for(int i = 2; i < a; i++)
    {
         
       // Checking for factors
       if (a % i == 0)
       {
           k = 1;
           break;
       }
    }
 
    // Returning 1 if the there are
    // no factors of the number other
    // than 1 or itself
    if (k == 1)
    {
        return (0);
    }
    else
    {
        return (1);
    }
}
 
// Function to check whether a number
// is an adam number or not
int adam(int a)
{
     
    // Reversing given number
    int r1 = reverse(a);
 
    // Squaring given number
    int s1 = a * a;
 
    // Squaring reversed number
    int s2 = r1 * r1;
 
    // Reversing the square of the
    // reversed number
    int r2 = reverse(s2);
 
    // Checking if the square of the
    // number and the square of its
    // reverse are equal or not
    if (s1 == r2)
    {
        return (1);
    }
    else
    {
        return (0);
    }
}
 
// Function to find all the prime
// adam numbers in the given range
void find(int m, int n)
{
 
    // If the first number is greater
    // than the second number,
    // print invalid
    if (m > n)
    {
        cout << " INVALID INPUT " << endl;
    }
    else
    {
        int c = 0;
 
        // Iterating through all the
        // numbers in the given range
        for(int i = m; i <= n; i++)
        {
             
           // Checking for prime number
           int l = prime(i);
           // Checking for Adam number
           int k = adam(i);
           if ((l == 1) && (k == 1))
           {
               cout << i << "\t";
           }
        }
    }
}
 
// Driver code
int main()
{
    int L = 5, R = 100;
     
    find(L, R);
    return 0;
}
 
// This code is contributed by Amit Katiyar

Java




// Java program to find all prime
// adam numbers in the given range
import java.io.*;
 
class GFG {
 
    public static int reverse(int a)
    {
        int rev = 0;
        while (a != 0) {
            int r = a % 10;
 
            // reversing a number by taking
            // remainder at a time
            rev = rev * 10 + r;
            a = a / 10;
        }
        return (rev);
    }
 
    // Function to check if a number
    // is a prime or not
    public static int prime(int a)
    {
        int k = 0;
 
        // Iterating till the number
        for (int i = 2; i < a; i++) {
 
            // Checking for factors
            if (a % i == 0) {
                k = 1;
                break;
            }
        }
 
        // Returning 1 if the there are no factors
        // of the number other than 1 or itself
        if (k == 1) {
            return (0);
        }
        else {
            return (1);
        }
    }
 
    // Function to check whether a number
    // is an adam number or not
    public static int adam(int a)
    {
        // Reversing given number
        int r1 = reverse(a);
 
        // Squaring given number
        int s1 = a * a;
 
        // Squaring reversed number
        int s2 = r1 * r1;
 
        // Reversing the square of the
        // reversed number
        int r2 = reverse(s2);
 
        // Checking if the square of the number
        // and the square of its reverse
        // are equal or not
        if (s1 == r2) {
            return (1);
        }
        else {
            return (0);
        }
    }
    // Function to find all the prime
    // adam numbers in the given range
    public static void find(int m, int n)
    {
 
        // If the first number is greater
        // than the second number,
        // print invalid
        if (m > n) {
            System.out.println(" INVALID INPUT ");
        }
        else {
 
            int c = 0;
 
            // Iterating through all the numbers
            // in the given range
            for (int i = m; i <= n; i++) {
 
                // Checking for prime number
                int l = prime(i);
 
                // Checking for Adam number
                int k = adam(i);
                if ((l == 1) && (k == 1)) {
                    System.out.print(i + "\t");
                }
            }
        }
    }
 
    // Driver code
    public static void main(String[] args)
    {
 
        int L = 5, R = 100;
        find(L, R);
    }
}

Python3




# Python3 program to find all prime
# adam numbers in the given range
 
def reverse(a):
 
    rev = 0;
    while (a != 0):
     
        r = a % 10;
 
        # Reversing a number by taking
        # remainder at a time
        rev = rev * 10 + r;
        a = a // 10;
     
    return(rev);
 
# Function to check if a number
# is a prime or not
def prime(a):
 
    k = 0;
 
    # Iterating till the number
    for i in range(2, a):
 
        # Checking for factors
        if (a % i == 0):
            k = 1;
            break;
 
    # Returning 1 if the there are
    # no factors of the number other
    # than 1 or itself
    if (k == 1):
        return (0);
    else:
        return (1);
 
# Function to check whether a number
# is an adam number or not
def adam(a):
 
    # Reversing given number
    r1 = reverse(a);
 
    # Squaring given number
    s1 = a * a;
 
    # Squaring reversed number
    s2 = r1 * r1;
 
    # Reversing the square of the
    # reversed number
    r2 = reverse(s2);
 
    # Checking if the square of the
    # number and the square of its
    # reverse are equal or not
    if (s1 == r2):
        return (1);
    else:
        return (0);
     
# Function to find all the prime
# adam numbers in the given range
def find(m, n):
 
    # If the first number is greater
    # than the second number,
    # print invalid
    if (m > n):
        print("INVALID INPUT\n");
    else:
        c = 0;
 
    # Iterating through all the
    # numbers in the given range
    for i in range(m, n):
 
        # Checking for prime number
        l = prime(i);
 
        # Checking for Adam number
        k = adam(i);
        if ((l == 1) and (k == 1)):
            print(i, "\t", end = " ");
             
# Driver code
L = 5; R = 100;
find(L, R);
 
# This code is contributed by Code_Mech

C#




// C# program to find all prime
// adam numbers in the given range
using System;
 
class GFG{
 
public static int reverse(int a)
{
    int rev = 0;
    while (a != 0)
    {
        int r = a % 10;
 
        // Reversing a number by taking
        // remainder at a time
        rev = rev * 10 + r;
        a = a / 10;
    }
    return (rev);
}
 
// Function to check if a number
// is a prime or not
public static int prime(int a)
{
    int k = 0;
 
    // Iterating till the number
    for(int i = 2; i < a; i++)
    {
        
       // Checking for factors
       if (a % i == 0)
       {
           k = 1;
           break;
       }
    }
     
    // Returning 1 if the there are no factors
    // of the number other than 1 or itself
    if (k == 1)
    {
        return (0);
    }
    else
    {
        return (1);
    }
}
 
// Function to check whether a number
// is an adam number or not
public static int adam(int a)
{
     
    // Reversing given number
    int r1 = reverse(a);
 
    // Squaring given number
    int s1 = a * a;
 
    // Squaring reversed number
    int s2 = r1 * r1;
 
    // Reversing the square of the
    // reversed number
    int r2 = reverse(s2);
 
    // Checking if the square of the
    // number and the square of its
    // reverse are equal or not
    if (s1 == r2)
    {
        return (1);
    }
    else
    {
        return (0);
    }
}
 
// Function to find all the prime
// adam numbers in the given range
public static void find(int m, int n)
{
 
    // If the first number is greater
    // than the second number,
    // print invalid
    if (m > n)
    {
        Console.WriteLine("INVALID INPUT");
    }
    else
    {
         
        // Iterating through all the numbers
        // in the given range
        for(int i = m; i <= n; i++)
        {
            
           // Checking for prime number
           int l = prime(i);
            
           // Checking for Adam number
           int k = adam(i);
           if ((l == 1) && (k == 1))
           {
               Console.Write(i + "\t");
           }
        }
    }
}
 
// Driver code
public static void Main(String[] args)
{
    int L = 5, R = 100;
    find(L, R);
}
}
 
// This code is contributed by Rohit_ranjan

Javascript




<script>
 
    // JavaScript program to find all prime
    // adam numbers in the given range
     
    function reverse(a)
    {
        let rev = 0;
        while (a != 0) {
            let r = a % 10;
  
            // reversing a number by taking
            // remainder at a time
            rev = rev * 10 + r;
            a = parseInt(a / 10, 10);
        }
        return (rev);
    }
  
    // Function to check if a number
    // is a prime or not
    function prime(a)
    {
        let k = 0;
  
        // Iterating till the number
        for (let i = 2; i < a; i++) {
  
            // Checking for factors
            if (a % i == 0) {
                k = 1;
                break;
            }
        }
  
        // Returning 1 if the there are no factors
        // of the number other than 1 or itself
        if (k == 1) {
            return (0);
        }
        else {
            return (1);
        }
    }
  
    // Function to check whether a number
    // is an adam number or not
    function adam(a)
    {
        // Reversing given number
        let r1 = reverse(a);
  
        // Squaring given number
        let s1 = a * a;
  
        // Squaring reversed number
        let s2 = r1 * r1;
  
        // Reversing the square of the
        // reversed number
        let r2 = reverse(s2);
  
        // Checking if the square of the number
        // and the square of its reverse
        // are equal or not
        if (s1 == r2) {
            return (1);
        }
        else {
            return (0);
        }
    }
    // Function to find all the prime
    // adam numbers in the given range
    function find(m, n)
    {
  
        // If the first number is greater
        // than the second number,
        // print invalid
        if (m > n) {
            document.write(" INVALID INPUT " + "</br>");
        }
        else {
  
            let c = 0;
  
            // Iterating through all the numbers
            // in the given range
            for (let i = m; i <= n; i++) {
  
                // Checking for prime number
                let l = prime(i);
  
                // Checking for Adam number
                let k = adam(i);
                if ((l == 1) && (k == 1)) {
                    document.write(i + " ");
                }
            }
        }
    }
     
    let L = 5, R = 100;
      find(L, R);
 
</script>
Output: 
11    13    31
 

Time Complexity: O(N2), where N is the maximum number R. 

Auxiliary Space: O(1)
 




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!