Dado un entero positivo N , la tarea es comprobar si N es un número primo equilibrado o no.
En la teoría de los números, un primo equilibrado es un número primo con huecos primos del mismo tamaño por encima y por debajo, de modo que es igual a la media aritmética de los primos más cercanos por encima y por debajo. O para decirlo algebraicamente, dado un número primo p<sub>n</sub>, donde n es su índice en el conjunto ordenado de números primos,
Los primeros números primos equilibrados son 5, 53, 157, 173…
Ejemplos:
Entrada: N = 5
Salida: Sí
, 5 es el tercer número primo, la media aritmética del segundo y el cuarto número primo, es decir, 3 y 7 es 5
, por lo que 5 es un primo equilibradoEntrada: N = 11
Salida: No
Acercarse:
- Si N no es un número primo o es el primer número primo, es decir , 2 , imprima No.
- De lo contrario, encuentre los primos más cercanos a N (uno a la izquierda y otro a la derecha) y almacene su media aritmética en mean .
- Si N == significa entonces imprimir Sí .
- De lo contrario , imprima No.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to check if a // given number is Balanced prime #include <bits/stdc++.h> using namespace std; // Utility function to check // if a number is prime or not 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 that returns true // if n is a Balanced prime bool isBalancedPrime(int n) { // If n is not a prime number or // n is the first prime then // return false if (!isPrime(n) || n == 2) return false; // Initialize previous_prime to // n - 1 and next_prime to n + 1 int previous_prime = n - 1; int next_prime = n + 1; // Find next prime number while (!isPrime(next_prime)) next_prime++; // Find previous prime number while (!isPrime(previous_prime)) previous_prime--; // Arithmetic mean int mean = (previous_prime + next_prime) / 2; // If n is a weak prime if (n == mean) return true; else return false; } // Driver code int main() { int n = 53; if (isBalancedPrime(n)) cout << "Yes"; else cout << "No"; return 0; } // This code is contributed by himanshu77
Java
// Java program to check if a // given number is Balanced prime class GFG{ // Utility function to check // if a number is prime or not 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 += 6) if (n % i == 0 || n % (i + 2) == 0) return false; return true; } // Function that returns true // if n is a Balanced prime static boolean isBalancedPrime(int n) { // If n is not a prime number // or n is the first prime // then return false if (!isPrime(n) || n == 2) return false; // Initialize previous_prime to // n - 1 and next_prime to n + 1 int previous_prime = n - 1; int next_prime = n + 1; // Find next prime number while (!isPrime(next_prime)) next_prime++; // Find previous prime number while (!isPrime(previous_prime)) previous_prime--; // Arithmetic mean int mean = (previous_prime + next_prime) / 2; // If n is a weak prime if (n == mean) return true; else return false; } // Driver code public static void main(String[] args) { int n = 53; if (isBalancedPrime(n)) System.out.println("Yes"); else System.out.println("No"); } } // This code is contributed by stutipathak31jan
Python3
# Python3 program to check if a # given number is Balanced prime # Utility function to check # if a number is prime or not 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 i = 5 while i * i <= n: if (n % i == 0 or n % (i + 2) == 0): return False i += 6 return True # Function that returns true # if n is a Balanced prime def isBalancedPrime(n): # If n is not a prime number # or n is the first prime # then return false if not isPrime(n) or n == 2: return False # Initialize previous_prime to # n - 1 and next_prime to n + 1 previous_prime = n - 1 next_prime = n + 1 # Find next prime number while not isPrime(next_prime): next_prime += 1 # Find previous prime number while not isPrime(previous_prime): previous_prime -= 1 # Arithmetic mean mean = (previous_prime + next_prime) / 2 # If n is a weak prime if n == mean: return True else: return False # Driver code n = 53 if isBalancedPrime(n): print("Yes") else: print("No") # This code is contributed by stutipathak31jan
C#
// C# program to check if a // given number is Balanced prime using System; class GFG { // Utility function to check // if a number is prime or not 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 that returns true // if n is a Balanced prime static bool isBalancedPrime(int n) { // If n is not a prime number or // n is the first prime then return false if (!isPrime(n) || n == 2) return false; // Initialize previous_prime to n - 1 // and next_prime to n + 1 int previous_prime = n - 1; int next_prime = n + 1; // Find next prime number while (!isPrime(next_prime)) next_prime++; // Find previous prime number while (!isPrime(previous_prime)) previous_prime--; // Arithmetic mean int mean = (previous_prime + next_prime) / 2; // If n is a weak prime if (n == mean) return true; else return false; } // Driver code public static void Main() { int n = 53; if (isBalancedPrime(n)) Console.WriteLine("Yes"); else Console.WriteLine("No"); } }
Javascript
<script> // Javascript program to check if a // given number is Balanced prime // Utility function to check // if a number is prime or not 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(let i = 5; i * i <= n; i = i + 6) if (n % i == 0 || n % (i + 2) == 0) return false; return true; } // Function that returns true // if n is a Balanced prime function isBalancedPrime(n) { // If n is not a prime number or // n is the first prime then // return false if (!isPrime(n) || n == 2) return false; // Initialize previous_prime to // n - 1 and next_prime to n + 1 let previous_prime = n - 1; let next_prime = n + 1; // Find next prime number while (!isPrime(next_prime)) next_prime++; // Find previous prime number while (!isPrime(previous_prime)) previous_prime--; // Arithmetic mean let mean = (previous_prime + next_prime) / 2; // If n is a weak prime if (n == mean) return true; else return false; } let n = 53; if (isBalancedPrime(n)) document.write("Yes"); else document.write("No"); // This code is contributed by divyesh072019. </script>
Yes
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA