# Check if a number is prime in Flipped Upside Down, Mirror Flipped and Mirror Flipped Upside Down

• Last Updated : 17 Mar, 2021

Given an integer N, the task is to check if N is a prime number in Flipped Down, Mirror Flipped and Mirror Flipped Down forms of the given number.
Examples:

Input: N = 120121
Output: Yes
Explanation:
Flipped forms of the number:
Flipped Upside Down – 151051
Mirror Flipped              – 121021
Mirror Upside Down   – 150151
Since 1510151 and 121021 are both prime numbers, the flipped numbers are prime.

Input: N = 12
Output: No
Explanation:
Flipped forms of the number:
Flipped Upside Down – 15
Mirror Flipped              – 21
Mirror Upside Down   – 51
All the flipped numbers are not prime.

Approach: Follow the steps below to solve the problem:

1. Since the number N has to be prime in each of the Flipped upside down, Mirror Flipped and Mirror Upside Down forms, the only possible digits it should contain are {0, 1, 2, 5, 8}.
2. Therefore, the problem reduces to check if the number is prime or not and if it is made up of the digits 0, 1, 2, 5, and 8 only.
3. If found to be true, print “Yes“.
4. Otherwise, print “No“.

Below is the implementation of the above approach:

## C++

 `// C++ program to implement``// the above approach` `#include ``using` `namespace` `std;` `// Function to check if N``// contains digits``// 0, 1, 2, 5, 8 only``bool` `checkDigits(``int` `n)``{``    ``// Extract digits of N``    ``do` `{``        ``int` `r = n % 10;` `        ``// Return false if any of``        ``// these digits are present``        ``if` `(r == 3 || r == 4 || r == 6``            ``|| r == 7 || r == 9)``            ``return` `false``;` `        ``n /= 10;``    ``} ``while` `(n != 0);` `    ``return` `true``;``}` `// Function to check if``// N is prime or not``bool` `isPrime(``int` `n)``{``    ``if` `(n <= 1)``        ``return` `false``;` `    ``// Check for all factors``    ``for` `(``int` `i = 2; i * i <= n; i++) {``        ``if` `(n % i == 0)``            ``return` `false``;``    ``}``    ``return` `true``;``}` `// Function to check if n is prime``// in all the desired forms``int` `isAllPrime(``int` `n)``{``    ``return` `isPrime(n)``           ``&& checkDigits(n);``}` `// Driver Code``int` `main()``{``    ``int` `N = 101;` `    ``if` `(isAllPrime(N))``        ``cout << ``"Yes"``;``    ``else``        ``cout << ``"No"``;``    ``return` `0;``}`

## Java

 `// Java program to implement``// the above approach``import` `java.util.*;``class` `GFG{` `// Function to check if N``// contains digits``// 0, 1, 2, 5, 8 only``static` `boolean` `checkDigits(``int` `n)``{``  ``// Extract digits of N``  ``do``  ``{``    ``int` `r = n % ``10``;` `    ``// Return false if any of``    ``// these digits are present``    ``if` `(r == ``3` `|| r == ``4` `||``        ``r == ``6` `|| r == ``7` `|| r == ``9``)``      ``return` `false``;` `    ``n /= ``10``;``  ``} ``while` `(n != ``0``);` `  ``return` `true``;``}` `// Function to check if``// N is prime or not``static` `boolean` `isPrime(``int` `n)``{``  ``if` `(n <= ``1``)``    ``return` `false``;` `  ``// Check for all factors``  ``for` `(``int` `i = ``2``; i * i <= n; i++)``  ``{``    ``if` `(n % i == ``0``)``      ``return` `false``;``  ``}``  ``return` `true``;``}` `// Function to check if n is prime``// in all the desired forms``static` `boolean` `isAllPrime(``int` `n)``{``  ``return` `isPrime(n) &&``         ``checkDigits(n);``}` `// Driver Code``public` `static` `void` `main(String[] args)``{``  ``int` `N = ``101``;` `  ``if` `(isAllPrime(N))``    ``System.out.print(``"Yes"``);``  ``else``    ``System.out.print(``"No"``);``}``}` `// This code is  contributed by gauravrajput1`

## Python3

 `# Python3 program to implement``# the above approach` `# Function to check if N``# contains digits``# 0, 1, 2, 5, 8 only``def` `checkDigits(n):``    ` `    ``# Extract digits of N``    ``while` `True``:``        ``r ``=` `n ``%` `10` `        ``# Return false if any of``        ``# these digits are present``        ``if` `(r ``=``=` `3` `or` `r ``=``=` `4` `or``            ``r ``=``=` `6` `or` `r ``=``=` `7` `or``            ``r ``=``=` `9``):``            ``return` `False` `        ``n ``/``/``=` `10` `        ``if` `n ``=``=` `0``:``            ``break` `    ``return` `True` `# Function to check if``# N is prime or not``def` `isPrime(n):``    ` `    ``if` `(n <``=` `1``):``        ``return` `False` `    ``# Check for all factors``    ``for` `i ``in` `range``(``2``, n ``+` `1``):``        ``if` `i ``*` `i > n:``            ``break``        ` `        ``if` `(n ``%` `i ``=``=` `0``):``            ``return` `False``            ` `    ``return` `True` `# Function to check if n is prime``# in all the desired forms``def` `isAllPrime(n):``    ` `    ``return` `isPrime(n) ``and` `checkDigits(n)` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ` `    ``N ``=` `101` `    ``if` `(isAllPrime(N)):``        ``print``(``"Yes"``)``    ``else``:``        ``print``(``"No"``)` `# This code is contributed by mohit kumar 29`

## C#

 `// C# program to implement``// the above approach``using` `System;` `class` `GFG{` `// Function to check if N``// contains digits``// 0, 1, 2, 5, 8 only``static` `bool` `checkDigits(``int` `n)``{``  ` `  ``// Extract digits of N``  ``do``  ``{``    ``int` `r = n % 10;` `    ``// Return false if any of``    ``// these digits are present``    ``if` `(r == 3 || r == 4 ||``        ``r == 6 || r == 7 ||``        ``r == 9)``      ``return` `false``;` `    ``n /= 10;``  ``} ``while` `(n != 0);` `  ``return` `true``;``}` `// Function to check if``// N is prime or not``static` `bool` `isPrime(``int` `n)``{``  ``if` `(n <= 1)``    ``return` `false``;` `  ``// Check for all factors``  ``for` `(``int` `i = 2; i * i <= n; i++)``  ``{``    ``if` `(n % i == 0)``      ``return` `false``;``  ``}``  ``return` `true``;``}` `// Function to check if n is prime``// in all the desired forms``static` `bool` `isAllPrime(``int` `n)``{``  ``return` `isPrime(n) &&``         ``checkDigits(n);``}` `// Driver Code``public` `static` `void` `Main(String[] args)``{``  ``int` `N = 101;` `  ``if` `(isAllPrime(N))``    ``Console.Write(``"Yes"``);``  ``else``    ``Console.Write(``"No"``);``}``}` `// This code is contributed by Rajput-Ji`

## Javascript

 ``

Output:

`Yes`

Time Complexity: O(N)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up