Open In App

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

Improve
Improve
Like Article
Like
Save
Share
Report

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 
 

 

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)
 



Last Updated : 08 Nov, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads