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++ 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 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 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# 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 |
<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> |
11 13 31
Time Complexity: O(N2), where N is the maximum number R.
Auxiliary Space: O(1)