# Check if a prime number can be expressed as sum of two Prime Numbers

Given a prime number . The task is to check if it is possible to express as sum of two separate prime numbers.**Note**: The range of N is less than 10^{8}.

**Examples:**

Input :N = 13Output :YesExplanation :The number 13 can be written as 11 + 2, here 11 and 2 are both prime.Input :N = 11Output :No

**Simple Solution**: A simple solution is to create a sieve to store all the prime numbers less than the number N. Then run a loop from 1 to N and check whether and are both prime or not. If yes then print Yes, else No.

**Efficient solution**: Apart from 2, all of the prime numbers are odd. So it is not possible to represent a prime number (which is odd) to be written as a sum of two odd prime numbers, so we are sure that one of the two prime number should be 2. So we have to check whether n-2 is prime or not. If it holds we print Yes else No.

For example, if the number is 19 then we have to check whether 19-2 = 17 is a prime number or not. If 17 is a prime number then print yes otherwise print no.

Below is the implementation of the above approach:

## C++

`// C++ program to check if a prime number` `// can be expressed as sum of` `// two Prime Numbers` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to check whether a number` `// is prime or not` `bool` `isPrime(` `int` `n)` `{` ` ` `if` `(n <= 1)` ` ` `return` `false` `;` ` ` `for` `(` `int` `i = 2; i <= ` `sqrt` `(n); i++) {` ` ` `if` `(n % i == 0)` ` ` `return` `false` `;` ` ` `}` ` ` `return` `true` `;` `}` `// Function to check if a prime number` `// can be expressed as sum of` `// two Prime Numbers` `bool` `isPossible(` `int` `N)` `{` ` ` `// if the number is prime,` ` ` `// and number-2 is also prime` ` ` `if` `(isPrime(N) && isPrime(N - 2))` ` ` `return` `true` `;` ` ` `else` ` ` `return` `false` `;` `}` `// Driver code` `int` `main()` `{` ` ` `int` `n = 13;` ` ` `if` `(isPossible(n))` ` ` `cout << ` `"Yes"` `;` ` ` `else` ` ` `cout << ` `"No"` `;` ` ` `return` `0;` `}` |

## Java

`// Java program to check if a prime number` `// can be expressed as sum of` `// two Prime Numbers` `public` `class` `GFG{` ` ` ` ` `// Function to check whether a number` ` ` `// is prime or not` ` ` `static` `boolean` `isPrime(` `int` `n)` ` ` `{` ` ` `if` `(n <= ` `1` `)` ` ` `return` `false` `;` ` ` ` ` `for` `(` `int` `i = ` `2` `; i <= Math.sqrt(n); i++) {` ` ` `if` `(n % i == ` `0` `)` ` ` `return` `false` `;` ` ` `}` ` ` ` ` `return` `true` `;` ` ` `}` ` ` ` ` `// Function to check if a prime number` ` ` `// can be expressed as sum of` ` ` `// two Prime Numbers` ` ` `static` `boolean` `isPossible(` `int` `N)` ` ` `{` ` ` `// if the number is prime,` ` ` `// and number-2 is also prime` ` ` `if` `(isPrime(N) && isPrime(N - ` `2` `))` ` ` `return` `true` `;` ` ` `else` ` ` `return` `false` `;` ` ` `}` ` ` ` ` `// Driver code` ` ` `public` `static` `void` `main(String []args){` ` ` ` ` `int` `n = ` `13` `;` ` ` ` ` `if` `(isPossible(n) == ` `true` `)` ` ` `System.out.println(` `"Yes"` `);` ` ` `else` ` ` `System.out.println(` `"No"` `);` ` ` `}` ` ` `// This code is contributed by ANKITRAI1` `}` |

## Python3

`# Python3 program to check if a prime` `# number can be expressed as sum of` `# two Prime Numbers` `import` `math` `# Function to check whether a number` `# is prime or not` `def` `isPrime(n):` ` ` `if` `n <` `=` `1` `:` ` ` `return` `False` ` ` ` ` `if` `n ` `=` `=` `2` `:` ` ` `return` `True` ` ` ` ` `if` `n` `%` `2` `=` `=` `0` `:` ` ` `return` `False` ` ` ` ` `for` `i ` `in` `range` `(` `3` `, ` `int` `(math.sqrt(n))` `+` `1` `, ` `2` `):` ` ` `if` `n` `%` `i ` `=` `=` `0` `:` ` ` `return` `False` ` ` `return` `True` `# Function to check if a prime number` `# can be expressed as sum of` `# two Prime Numbers` `def` `isPossible(n):` ` ` `# if the number is prime,` ` ` `# and number-2 is also prime` ` ` `if` `isPrime(n) ` `and` `isPrime(n ` `-` `2` `):` ` ` `return` `True` ` ` `else` `:` ` ` `return` `False` `# Driver code` `n ` `=` `13` `if` `isPossible(n) ` `=` `=` `True` `:` ` ` `print` `(` `"Yes"` `)` `else` `:` ` ` `print` `(` `"No"` `)` ` ` `# This code is contributed by Shrikant13` |

## C#

`// C# program to check if a prime` `// number can be expressed as sum` `// of two Prime Numbers` `using` `System;` `class` `GFG` `{` `// Function to check whether a` `// number is prime or not` `static` `bool` `isPrime(` `int` `n)` `{` ` ` `if` `(n <= 1)` ` ` `return` `false` `;` ` ` `for` `(` `int` `i = 2;` ` ` `i <= Math.Sqrt(n); i++)` ` ` `{` ` ` `if` `(n % i == 0)` ` ` `return` `false` `;` ` ` `}` ` ` `return` `true` `;` `}` `// Function to check if a prime` `// number can be expressed as sum` `// of two Prime Numbers` `static` `bool` `isPossible(` `int` `N)` `{` ` ` `// if the number is prime,` ` ` `// and number-2 is also prime` ` ` `if` `(isPrime(N) && isPrime(N - 2))` ` ` `return` `true` `;` ` ` `else` ` ` `return` `false` `;` `}` `// Driver code` `public` `static` `void` `Main()` `{` ` ` `int` `n = 13;` ` ` `if` `(isPossible(n) == ` `true` `)` ` ` `Console.Write(` `"Yes"` `);` ` ` `else` ` ` `Console.Write(` `"No"` `);` `}` `}` `// This code is contributed` `// by ChitraNayal` |

## PHP

`<?php` `// PHP program to check if a prime` `// number can be expressed as sum` `// of two Prime Numbers` `// Function to check whether a` `// number is prime or not` `function` `isPrime(` `$n` `)` `{` ` ` `if` `(` `$n` `<= 1)` ` ` `return` `false;` ` ` `for` `(` `$i` `= 2; ` `$i` `<= sqrt(` `$n` `); ` `$i` `++)` ` ` `{` ` ` `if` `(` `$n` `% ` `$i` `== 0)` ` ` `return` `false;` ` ` `}` ` ` `return` `true;` `}` `// Function to check if a prime` `// number can be expressed as sum` `// of two Prime Numbers` `function` `isPossible(` `$N` `)` `{` ` ` `// if the number is prime,` ` ` `// and number-2 is also prime` ` ` `if` `(isPrime(` `$N` `) && isPrime(` `$N` `- 2))` ` ` `return` `true;` ` ` `else` ` ` `return` `false;` `}` `// Driver code` `$n` `= 13;` `if` `(isPossible(` `$n` `))` ` ` `echo` `(` `"Yes"` `);` `else` ` ` `echo` `(` `"No"` `);` `// This code is contributed` `// by Shivi_Aggarwal` `?>` |

## Javascript

`<script>` `// Javascript program to check if a` `// prime number can be expressed as` `// sum of two Prime Numbers` `// Function to check whether a number` `// is prime or not` `function` `isPrime(n)` `{` ` ` `if` `(n <= 1)` ` ` `return` `false` `;` ` ` `for` `(` `var` `i = 2; i <= parseInt(Math.sqrt(n)); i++)` ` ` `{` ` ` `if` `(n % i == 0)` ` ` `return` `false` `;` ` ` `}` ` ` `return` `true` `;` `}` `// Function to check if a prime number` `// can be expressed as sum of` `// two Prime Numbers` `function` `isPossible(N)` `{` ` ` ` ` `// If the number is prime,` ` ` `// and number-2 is also prime` ` ` `if` `(isPrime(N) && isPrime(N - 2))` ` ` `return` `true` `;` ` ` `else` ` ` `return` `false` `;` `}` `// Driver code` `var` `n = 13;` `if` `(isPossible(n))` ` ` `document.write(` `"Yes"` `);` `else` ` ` `document.write(` `"No"` `);` ` ` `// This code is contributed by noob2000` `</script>` |

**Output:**

Yes