Given a very large number N (1 <= number of digit in N <= 105). The task is find the largest number X such that X < N and each digit of X is prime number.
Input : N = 1000 Output : 777 777 is the largest number less than 1000 which have each digit as prime. Input : N = 11 Output : 7
The idea is to traverse from leftmost digit of the number N to rightmost digit of N. Check if the current digit is prime or not. If it is prime, copy the digit to output number at corresponding digit position. If it is not prime, copy the largest prime number less than current digit.
Now consider if the current digit is ‘0’ or ‘1’. In that case copy ‘7’ to current digit position of output number. Also move to adjacent left digit of current digit and reduce it to largest prime number less than it.
Once we reduce any digit to largest prime number less than the digit, we copy ‘7’ to rest of the right digit in the output number.
Below is C++ implementation of this approach:
This article is contributed by Anuj Chauhan (anuj0503). If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details
- Queries for the smallest and the largest prime number of given digit
- Largest number less than N with digit sum greater than the digit sum of N
- Largest and smallest digit of a number
- Largest even digit number not greater than N
- Largest value of x such that axx is N-digit number of base b
- Largest K digit number divisible by X
- Check if the first and last digit of number N is prime and their sum is less than K
- C++ Program for Largest K digit number divisible by X
- Largest N digit number divisible by given three numbers
- Largest Even and Odd N-digit numbers in Octal Number System
- Java Program for Largest K digit number divisible by X
- Largest Even and Odd N-digit numbers in Hexadecimal Number System
- Largest N digit Octal number which is a Perfect square
- Check if the first and last digit of the smallest number forms a prime
- Largest number with prime digits