# Check if N is a Balanced Prime number or not

Given a positive integer N, the task is to check if N is a Balanced Prime number or not.

In number theory, a Balanced Prime  is a prime number with equal-sized prime gaps above and below it, so that it is equal to the arithmetic mean of the nearest primes above and below. Or to put it algebraically, given a prime number p<sub>n</sub>, where n is its index in the ordered set of prime numbers, First  few balanced prime are 5, 53, 157, 173……

Examples:

Input: N = 5
Output: Yes
5 is 3rd prime number, the arithmetic mean of 2nd and 4th prime number i.e. 3 and 7 is 5.
so 5 is a Balanced prime.

Input: N = 11
Output: No

Approach:

• If N is not a prime number or it is the first prime number i.e. 2 then print No.
• Else find the primes closest to N (one on the left and one on the right) and store their arithmetic mean in mean.
• If N == mean then print Yes.
• Else print No.

Below is the implementation of the above approach:

## 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");      }  }

Output:

Yes


Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.