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

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Output: 
11    13    31

 

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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.