A number is said to be twisted prime if it is a prime number and reverse of the number is also a prime number.
Examples:
Input : 97
Output : Twisted Prime Number
Explanation: 97 is a prime number
and its reverse 79 is also a prime
number.
Input : 43
Output : Not a Twisted Prime Number
Explanation: 43 is a prime number
but its reverse 34 is not a prime
number.
The idea is first check if n is a prime number then reverse the number n and check reversed n is a prime number or not.
We use methods of below two articles.
1) Check if a number is prime (School Method)
2) Reverse digits of a number.
C++
#include <bits/stdc++.h>
using namespace std;
int reverse( int n)
{
int rev = 0, r;
while (n > 0) {
r = n % 10;
rev = rev * 10 + r;
n /= 10;
}
return rev;
}
bool isPrime( int n)
{
if (n <= 1)
return false ;
if (n <= 3)
return true ;
if (n % 2 == 0 || n % 3 == 0)
return false ;
for ( int i = 5; i * i <= n; i = i + 6)
if (n % i == 0 || n % (i + 2) == 0)
return false ;
return true ;
}
bool checkTwistedPrime( int n)
{
if (isPrime(n) == false )
return false ;
return isPrime(reverse(n));
}
int main( void )
{
cout << "First few Twisted Prime numbers are :- n" ;
for ( int i = 2; i <= 200; i++)
if (checkTwistedPrime(i))
cout << i << " " ;
return 0;
}
|
Java
import java.io.*;
import java.math.*;
class GFG
{
static int reverse( int n)
{
int rev = 0 , r;
while (n > 0 )
{
r = n % 10 ;
rev = rev * 10 + r;
n /= 10 ;
}
return rev;
}
static boolean isPrime( int n)
{
if (n <= 1 )
return false ;
if (n <= 3 )
return true ;
if (n % 2 == 0 || n % 3 == 0 )
return false ;
for ( int i = 5 ; i * i <= n; i = i + 6 )
if (n % i == 0 || n % (i + 2 ) == 0 )
return false ;
return true ;
}
static boolean checkTwistedPrime( int n)
{
if (isPrime(n) == false )
return false ;
return isPrime(reverse(n));
}
public static void main(String args[])
throws IOException
{
System.out.println( "First few Twisted Prime" +
" Numbers are :- n" );
for ( int i = 2 ; i <= 200 ; i++)
if (checkTwistedPrime(i))
System.out.print(i + " " );
}
}
|
Python3
def reverse(n) :
rev = 0
while n > 0 :
r = n % 10
rev = rev * 10 + r
n = n / / 10
return rev
def isPrime(n) :
if (n < = 1 ):
return False
if (n < = 3 ):
return True
if (n % 2 = = 0 or n % 3 = = 0 ):
return False
i = 5
while (i * i < = n):
if (n % i = = 0 or n % (i + 2 ) = = 0 ):
return False
i = i + 6
return True ;
def checkTwistedPrime (n) :
if (isPrime(n) = = False ):
return False
return isPrime(reverse(n))
print ( "First few Twisted Prime numbers are :- " )
i = 2
while i< = 200 :
if (checkTwistedPrime(i) = = True ) :
print (i,end = " " )
i = i + 1
|
C#
using System;
class GFG
{
static int reverse( int n)
{
int rev = 0, r;
while (n > 0)
{
r = n % 10;
rev = rev * 10 + r;
n /= 10;
}
return rev;
}
static bool isPrime( int n)
{
if (n <= 1)
return false ;
if (n <= 3)
return true ;
if (n % 2 == 0 || n % 3 == 0)
return false ;
for ( int i = 5;
i * i <= n; i = i + 6)
if (n % i == 0 ||
n % (i + 2) == 0)
return false ;
return true ;
}
static bool checkTwistedPrime( int n)
{
if (isPrime(n) == false )
return false ;
return isPrime(reverse(n));
}
static public void Main ()
{
Console.WriteLine( "First few Twisted Prime" +
" Numbers are :- " );
for ( int i = 2; i <= 200; i++)
if (checkTwistedPrime(i))
Console.Write(i + " " );
}
}
|
PHP
<?php
function reverse( $n )
{
$rev = 0;
while ( $n > 0){
$r = $n % 10;
$rev = $rev * 10 + $r ;
$n = (int)( $n / 10);
}
return $rev ;
}
function isPrime( $n )
{
if ( $n <= 1)
return false;
if ( $n <= 3)
return true;
if ( $n % 2 == 0 or $n % 3 == 0)
return false;
$i = 5;
while ( $i * $i <= $n ){
if ( $n % $i == 0 or $n % ( $i + 2) == 0)
return false;
$i = $i + 6;
}
return true;
}
function checkTwistedPrime ( $n )
{
if (isPrime( $n ) == false)
return false;
return isPrime(reverse( $n ));
}
print ( "First few Twisted Prime numbers are :- \n" );
$i = 2;
while ( $i <= 200)
{
if (checkTwistedPrime( $i ) == true)
print ( $i . " " );
$i = $i + 1;
}
?>
|
Javascript
<script>
function reverse(n)
{
let rev = 0, r;
while (n > 0)
{
r = n % 10;
rev = rev * 10 + r;
n = parseInt(n / 10, 10);
}
return rev;
}
function isPrime(n)
{
if (n <= 1)
return false ;
if (n <= 3)
return true ;
if (n % 2 == 0 || n % 3 == 0)
return false ;
for (let i = 5; i * i <= n; i = i + 6)
if (n % i == 0 || n % (i + 2) == 0)
return false ;
return true ;
}
function checkTwistedPrime(n)
{
if (isPrime(n) == false )
return false ;
return isPrime(reverse(n));
}
document.write( "First few Twisted Prime Numbers are :- " + "</br>" );
for (let i = 2; i <= 200; i++)
if (checkTwistedPrime(i))
document.write(i + " " );
</script>
|
Output:
First few Twisted Prime Numbers are :-
2 3 5 7 11 13 17 31 37 71 73 79 97 101 107 113 131 149 151 157 167 179 181 191 199
This article is contributed by Nikita Tiwari. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Please Login to comment...