 Open in App
Not now

# C++ Program to Print the Largest Possible Prime Number From a Given Number

• Difficulty Level : Medium
• Last Updated : 03 Oct, 2022

Given an integer, the task is to find the largest prime number that can be made out of that. If we consider the integer as a string of digits, then the prime number can be a substring of any length. The examples given below will clarify the idea of the problem.

Example:

Input: 12691
Output: 691
Explanation: The three numbers in the number 12691 are 269,691. The greater number is 691 and hence we print this.

## Approach:

• Create a string of the given number
• Compute all the substrings of the string
• Check whether any substring is prime or not
• If a substring is prime, maximize its value by comparing it with the other prime substrings
• Return the maximum value of the prime substring

## C++

 `// C++ program to Print the Largest` `// Possible Prime Number From a ` `// Given Number` `#include ` `#include ` `using` `namespace` `std;`   `// function to check whether the` `// substring is prime or not` `bool` `isprime(string f)` `{` `    ``int` `n = stoi(f);` `  `  `    ``// corner case check` `    ``if` `(n <= 1)` `        ``return` `false``;`   `    ``// Check from 2 to n-1` `    ``for` `(``int` `i = 2; i < n; i++) {` `        ``if` `(n % i == 0)` `            ``return` `false``;` `    ``}` `    ``return` `true``;` `}` `int` `longp(``int` `a)` `{` `    ``// convert the number to a string` `    ``string d = to_string(a);` `    ``int` `n = d.length();` `    ``int` `c = INT_MIN;` `    ``for` `(``int` `i = 0; i < n; i++) {` `        ``for` `(``int` `len = 1; len <= n - i; len++) {` `          `  `            ``// calculate the substrings of the string` `            ``string p = d.substr(i, len);` `          `  `            ``// pass the substring to the prime check` `            ``// function` `            ``if` `(isprime(p)) {` `                ``int` `l = stoi(p);` `              `  `                ``// store the maximum value of the prime` `                ``// substring` `                ``c = max(c, l);` `            ``}` `        ``}` `    ``}` `    ``return` `c;` `}` `// Driver Code` `int` `main()` `{`   `    ``long` `long` `int` `n = 12691;` `    ``int` `k = longp(n);` `    ``cout << k;` `    ``return` `0;` `}`

Output

`691`

Time Complexity: O(N3)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Related Articles