Dado un número entero N , la tarea es verificar si N es un número primo en las formas Flipped Down, Mirror Flipped y Mirror Flipped Down del número dado.
Ejemplos:
Entrada: N = 120121
Salida: Sí
Explicación:
Formas invertidas del número:
Volteado al revés: 151051
Espejo volteado: 121021
Espejo al revés: 150151
Dado que 1510151 y 121021 son números primos, los números invertidos son primos.Entrada: N = 12
Salida: No
Explicación:
Formas invertidas del número:
Volteado al revés: 15
Espejo volteado: 21
Espejo al revés: 51
Todos los números volteados no son primos.
Enfoque: siga los pasos a continuación para resolver el problema:
- Dado que el número N tiene que ser primo en cada una de las formas Volteado al revés, Espejo volteado y Espejo al revés, los únicos dígitos posibles que debe contener son {0, 1, 2, 5, 8}.
- Por tanto, el problema se reduce a comprobar si el número es primo o no y si está formado únicamente por los dígitos 0, 1, 2, 5 y 8 .
- Si es cierto, escriba “ Sí ”.
- De lo contrario, escriba “ No ”.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to implement // the above approach #include <bits/stdc++.h> 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
<script> // Javascript program to implement // the above approach // Function to check if N // contains digits // 0, 1, 2, 5, 8 only function checkDigits(n) { // Extract digits of N do { var 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 = parseInt(n/10); } while (n != 0); return true; } // Function to check if // N is prime or not function isPrime(n) { if (n <= 1) return false; // Check for all factors for (var 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 function isAllPrime(n) { return isPrime(n) && checkDigits(n); } // Driver Code var N = 101; if (isAllPrime(N)) document.write("Yes"); else document.write("No"); </script>
Producción:
Yes
Complejidad temporal: O(N)
Espacio auxiliar: O(1)