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

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  
 
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:  
Iterate through the given range [L, R].
For every number, check if the number is prime or not.
If it is a prime, then check whether the number is an adam number or not.
If a number is both prime and adam, then print the number.
Below is the implementation of the above approach:  
C++
Java
Python3
C#
Javascript
// 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 notint 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 notint 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 rangevoid 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 codeint main(){    int L = 5, R = 100;         find(L, R);    return 0;} // This code is contributed by Amit Katiyar
// Java program to find all prime// adam numbers in the given rangeimport 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 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 notdef 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 notdef 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 rangedef 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 codeL = 5; R = 100;find(L, R); # This code is contributed by Code_Mech
// C# program to find all prime// adam numbers in the given rangeusing 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 notpublic 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 notpublic 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 rangepublic 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 codepublic static void Main(String[] args){    int L = 5, R = 100;    find(L, R);}} // This code is contributed by Rohit_ranjan
<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>
Time Complexity: O(N2), where N is the maximum number R. 
Auxiliary Space: O(1) 
Rohit_ranjan
amit143katiyar
Code_Mech
divyeshrabadiya07
sushmitamittal1329
Mathematical
School Programming
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.