Skip to content
Related Articles
Consecutive Prime numbers greater than equal to given number.
• Difficulty Level : Medium
• Last Updated : 27 May, 2021

### Question:

Given a number n, the task is to find two consecutive prime such that the product of these two prime is greater than or equal to n.

### Example:

Input: 14
Output: 3 5
Explanation: 3 and 5 are consecutive prime numbers whose product is greater than 14.

### Approach:

Suppose n is of the range 10^8 to 10^10. We cannot find out primes using sieve because the range is upto10^10.

We can find the required consecutive primes by doing the following method.

• Find the greatest prime which is less than sqrt(n) and store it in a temporary variable (first).
• Find the smallest prime which is greater than sqrt(n) and store it in a temporary variable(second).
• If the product of first and second is greater than equal to n then print it.
• Else find a prime just greater than second and print it along with second.

## C++

 `//C++ program for the above approach``#include ``#define endl "\n"``#define ll long long``using` `namespace` `std;` `//Function to check prime.``bool` `is_prime(ll n)``{``    ``if` `(n == 1)``    ``{``        ``return` `false``;``    ``}``    ``for` `(ll i = 2; i <= ``sqrt``(n); i++)``    ``{``        ``if` `(n % i == 0)``        ``{``          ``// It means it is not``          ``// a prime``            ``return` `false``;``        ``}``    ``}``  ``// No factor other than 1``  ``// therefore prime number``    ``return` `true``;``}` `//Function to find out the required``//consecutive primes.``void` `consecutive_primes(``int` `n)``{``    ``ll first = -1, second = -1;``  ` `    ``//Finding first prime just``    ``// less than sqrt(n).``    ``for` `(ll i = ``sqrt``(n); i >= 2; i--)``    ``{``        ``if` `(is_prime(i))``        ``{``            ``first = i;``            ``break``;``        ``}``    ``}``    ``// Finding prime just greater``    ``//than sqrt(n).``    ``for` `(ll i = ``sqrt``(n) + 1;``         ``i <= n / 2; i++)``    ``{``        ``if` `(is_prime(i))``        ``{``            ``second = i;``            ``break``;``        ``}``    ``}``    ``// Product of both prime is greater``    ``// than n then print it``    ``if` `(first * second >= n)``    ``{``        ``cout << first << ``" "``          ``<

## Java

 `// Java program for the above approach``import` `java.io.*;``import` `java.util.*;` `class` `GFG{``    ` `// Function to check prime.``static` `boolean` `is_prime(``long` `n)``{``    ``if` `(n == ``1``)``    ``{``        ``return` `false``;``    ``}``    ``for``(``long` `i = ``2``; i <= (``long``)Math.sqrt(n); i++)``    ``{``        ``if` `(n % i == ``0``)``        ``{``            ` `            ``// It means it is not``            ``// a prime``            ``return` `false``;``        ``}``    ``}``   ` `    ``// No factor other than 1``    ``// therefore prime number``    ``return` `true``;``}` `// Function to find out the required``// consecutive primes.``static` `void` `consecutive_primes(``long` `n)``{``    ``long` `first = -``1``, second = -``1``;` `    ``// Finding first prime just``    ``// less than sqrt(n).``    ``for``(``long` `i = (``long``)Math.sqrt(n); i >= ``2``; i--)``    ``{``        ``if` `(is_prime(i))``        ``{``            ``first = i;``            ``break``;``        ``}``    ``}``    ` `    ``// Finding prime just greater``    ``// than sqrt(n).``    ``for``(``long` `i = (``long``)Math.sqrt(n) + ``1``;``             ``i <= n / ``2``; i++)``    ``{``        ``if` `(is_prime(i))``        ``{``            ``second = i;``            ``break``;``        ``}``    ``}``    ` `    ``// Product of both prime is greater``    ``// than n then print it``    ``if` `(first * second >= n)``    ``{``        ``System.out.println(first + ``" "` `+ second);``    ``}``   ` `    ``// Finding prime greater than second``    ``else``    ``{``        ``for``(``long` `i = second + ``1``; i <= n; i++)``        ``{``            ``if` `(is_prime(i))``            ``{``                ``System.out.println(second + ``" "` `+ i);``                ``return``;``            ``}``        ``}``    ``}``}` `// Driver code``public` `static` `void` `main(String args[])``{``    ``long` `n = ``14``;``    ``consecutive_primes(n);``}``}` `// This code is contributed by splevel62`

## Python3

 `#python 3 program for the above approach``#Function to check prime.``from` `math ``import` `sqrt` `def` `is_prime(n):``    ``if` `(n ``=``=` `1``):``        ``return` `False``    ``for` `i ``in` `range``(``2``,``int``(sqrt(n))``+``1``,``1``):``        ``if` `(n ``%` `i ``=``=` `0``):``            ``# It means it is not``            ``# a prime``            ``return` `False``  ``# No factor other than 1``  ``# therefore prime number``    ``return` `True` `# Function to find out the required``# consecutive primes.``def` `consecutive_primes(n):``    ``first ``=` `-``1``    ``second ``=` `-``1``  ` `    ``# Finding first prime just``    ``# less than sqrt(n).``    ``i ``=` `int``(sqrt(n))``    ``while``(i >``=` `2``):``        ``if` `(is_prime(i)):``            ``first ``=` `i``            ``break``        ``i ``-``=` `1``        ` `    ``# Finding prime just greater``    ``#than sqrt(n).``    ``for` `i ``in` `range``(``int``(sqrt(n)) ``+` `1``,n``/``/``2` `+``1` `,``1``):``        ``if` `(is_prime(i)):``            ``second ``=` `i``            ``break` `    ``# Product of both prime is greater``    ``# than n then print it``    ``if` `(first ``*` `second >``=` `n):``        ``print``(first,second)``        ` `    ``# Finding prime greater than second``    ``else``:``        ``for` `i ``in` `range``(second ``+` `1``,n``+``1``,``1``):``            ``if` `(is_prime(i)):``                ``print``(second,i)``                ``return``            ` `# Driver Program``if` `__name__ ``=``=` `'__main__'``:``    ``n ``=` `14``    ``consecutive_primes(n)``    ` `    ``# This code is contributed by SURENDRA_GANGWAR.`

## C#

 `// C# program for the above approach``using` `System;``class` `GFG``{``  ` `    ``// Function to check prime.``    ``static` `bool` `is_prime(``long` `n)``    ``{``        ``if` `(n == 1) {``            ``return` `false``;``        ``}``        ``for` `(``long` `i = 2; i <= (``long``)Math.Sqrt(n); i++) {``            ``if` `(n % i == 0)``            ``{``              ` `                ``// It means it is not``                ``// a prime``                ``return` `false``;``            ``}``        ``}``      ` `        ``// No factor other than 1``        ``// therefore prime number``        ``return` `true``;``    ``}` `    ``// Function to find out the required``    ``// consecutive primes.``    ``static` `void` `consecutive_primes(``long` `n)``    ``{``        ``long` `first = -1, second = -1;` `        ``// Finding first prime just``        ``// less than sqrt(n).``        ``for` `(``long` `i = (``long``)Math.Sqrt(n); i >= 2; i--) {``            ``if` `(is_prime(i)) {``                ``first = i;``                ``break``;``            ``}``        ``}``        ``// Finding prime just greater``        ``// than sqrt(n).``        ``for` `(``long` `i = (``long``)Math.Sqrt(n) + 1; i <= n / 2;``             ``i++) {``            ``if` `(is_prime(i)) {``                ``second = i;``                ``break``;``            ``}``        ``}``        ``// Product of both prime is greater``        ``// than n then print it``        ``if` `(first * second >= n) {``            ``Console.WriteLine(first + ``" "` `+ second);``        ``}``      ` `        ``// Finding prime greater than second``        ``else` `{``            ``for` `(``long` `i = second + 1; i <= n; i++) {``                ``if` `(is_prime(i)) {``                    ``Console.WriteLine(second + ``" "` `+ i);``                    ``return``;``                ``}``            ``}``        ``}``    ``}``  ` `    ``// Driver Program``    ``public` `static` `void` `Main()``    ``{``        ``long` `n = 14;``        ``consecutive_primes(n);``    ``}``}` `// This code is contributed  by ukasp.`

## Javascript

 ``
Output

`3 5`

Time Complexity: O(sqrt(n))

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with industry experts, please refer DSA Live Classes

My Personal Notes arrow_drop_up