Dado un número entero N , la tarea es verificar si N es un número débilmente primo.
Los números primos débiles son números primos que no se pueden convertir en primos cambiando un solo dígito.
Ejemplos:
Entrada: N = 294001
Salida: Sí
Entrada: N = 30
Salida: No
Solución: si el número es compuesto, devuelve falso; de lo contrario, reemplazaremos cada dígito del número con todos los dígitos posibles del 0 al 9 para cada posición uno por uno y devolveremos falso si el número formado por este es un número primo.
C++
// C++ Program to check if n // is Weakly Prime Number #include <bits/stdc++.h> using namespace std; // function to check if N is prime bool isPrime(int n) { // Corner cases if (n <= 1) return false; if (n <= 3) return true; // This is checked so that we can skip // middle five numbers in below loop 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; } // function to check if n // is a Weakly Prime Number bool isWeaklyPrimeNum(int N) { // number should be prime if (!isPrime(N)) return false; // converting N to string string s = to_string(N); // loop to change digit // at every character // one by one. for (int j = 0; j < s.length(); j++) { string str = s; // loop to store every // digit one by one // at index j for (int i = 0; i <= 9; i++) { char c = '0' + i; str[j] = c; int Num = stoi(str); if (str[j] != s[j] && isPrime(Num)) { return false; } } } return true; } // Driver code int main() { int n = 294001; if (isWeaklyPrimeNum(n)) cout << "Yes"; else cout << "No"; return 0; }
Java
// Java program to check if n // is Weakly Prime Number class GFG{ // Function to check if N is prime static boolean isPrime(int n) { // Corner cases if (n <= 1) return false; if (n <= 3) return true; // This is checked so that we can skip // middle five numbers in below loop 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; } // Function to check if n // is a Weakly Prime Number static boolean isWeaklyPrimeNum(int N) { // Number should be prime if (!isPrime(N)) return false; // Converting N to String String s = String.valueOf(N); // Loop to change digit // at every character // one by one. for(int j = 0; j < s.length(); j++) { char []str = s.toCharArray(); // Loop to store every // digit one by one // at index j for(int i = 0; i <= 9; i++) { char c = (char)('0' + i); str[j] = c; int Num = Integer.valueOf( String.valueOf(str)); if (str[j] != s.charAt(j) && isPrime(Num)) { return false; } } } return true; } // Driver code public static void main(String[] args) { int n = 294001; if (isWeaklyPrimeNum(n)) System.out.print("Yes"); else System.out.print("No"); } } // This code is contributed by Princi Singh
Python3
# Python3 Program to check if n # is weakly prime Number # function to check if N is prime def isPrime(n): # Corner cases if (n <= 1) : return False if (n <= 3) : return True # This is checked so that we can skip # middle five numbers in below loop if (n % 2 == 0 or n % 3 == 0): return False for i in range(5, int(n**0.5) + 1, 6): if (n % i == 0 or n % (i + 2) == 0): return False return True # function to check if n # is a weakly prime Number def isWeaklyPrimeNum(N): # number should be prime if (isPrime(N)==False) : return False # converting N to string s = str(N) # loop to change digit at every character # one by one. for j in range(len(s)): str1 = s # loop to store every digit one by one # at index j for i in range(10): c = str(i) str1 = str1[ : j] + c + str1[j + 1 : ] Num = int(str1) if (str1[j] != s[j] and isPrime(Num)) : return False return True # Driver code n = 294001 if (isWeaklyPrimeNum(n)): print("Yes") else: print("No") # This code is contributed by Vishal Maurya.
C#
// C# program to check if n // is Weakly Prime Number using System; class GFG{ // Function to check if N is prime static bool isPrime(int n) { // Corner cases if (n <= 1) return false; if (n <= 3) return true; // This is checked so that we can skip // middle five numbers in below loop 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; } // Function to check if n // is a Weakly Prime Number static bool isWeaklyPrimeNum(int N) { // Number should be prime if (!isPrime(N)) return false; // Converting N to String String s = String.Join("", N); // Loop to change digit // at every character // one by one. for(int j = 0; j < s.Length; j++) { char []str = s.ToCharArray(); // Loop to store every // digit one by one // at index j for(int i = 0; i <= 9; i++) { char c = (char)('0' + i); str[j] = c; int Num = Int32.Parse(String.Join("", str)); if (str[j] != s[j] && isPrime(Num)) { return false; } } } return true; } // Driver code public static void Main(String[] args) { int n = 294001; if (isWeaklyPrimeNum(n)) Console.Write("Yes"); else Console.Write("No"); } } // This code is contributed by Princi Singh
Javascript
<script> // Javascript implementation // function to check if N is prime function isPrime(n) { // Corner cases if (n <= 1) return false; if (n <= 3) return true; // This is checked so that we can skip // middle five numbers in below loop if (n % 2 == 0 || n % 3 == 0) return false; for (var i = 5; i * i <= n; i = i + 6) if (n % i == 0 || n % (i + 2) == 0) return false; return true; } // function to check if n // is a Weakly Prime Number function isWeaklyPrimeNum(N) { // number should be prime if (!isPrime(N)) return false; // converting N to string var s = N.toString(); // loop to change digit // at every character // one by one. for (var j = 0; j < s.length; j++) { var str = s; // loop to store every // digit one by one // at index j for (var i = 0; i <= 9; i++) { var c = '0' + i.toString(); str[j] = c; var Num = parseInt(str); if (str[j] != s[j] && isPrime(Num)) { return false; } } } return true; } // Driver Code // Given Number N var N = 294001; // Function Call if (isWeaklyPrimeNum(N)) document.write("Yes"); else document.write("No"); // This code is contributed by shubhamsingh10 </script>
Producción:
Yes
Referencias: http://oeis.org/A050249