# Check if number can be made prime by deleting a single digit

• Last Updated : 07 May, 2021

Given an integer N, the task is to check if it is possible to make N prime by deleting any single digit from N.

Examples:

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 experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

Input: N = 610
Output: Yes
Explanation:
Deleting 0 from 610, we get 61 which is prime.

Input: N = 68
Output: No

Approach: The idea is to convert N to a string. Now iterate for every digit of string and Delete character at index i from string and then convert the string after deleting character at index i to an integer, Now check if this integer is a prime, then return true. Otherwise, finally return false.

Below is the implementation of the above approach:

## C++

 `// C++ implementation to check if a number``// becomes prime by deleting any digit` `#include ``using` `namespace` `std;``  ` `// Function to check if N is prime``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 to delete character at index i``// from given string str``string deleteIth(string str, ``int` `i)``{``    ``// Deletes character at position 4``    ``str.erase(str.begin() + i);``  ` `    ``return` `str;``}` `// Function to check if a number``// becomes prime by deleting any digit``bool` `isPrimePossible(``int` `N)``{``    ``// Converting the number to string``    ``string s = to_string(N);``  ` `    ``// length of string``    ``int` `l = s.length();``  ` `    ``// number should not be``    ``// of single digit``    ``if` `(l < 2)``        ``return` `false``;``  ` `    ``// Loop to find all numbers``    ``// after deleting a single digit``    ``for` `(``int` `i = 0; i < l ; i++) {``      ` `        ``// Deleting ith character``        ``// from the string``        ``string str = deleteIth(s, i);``        ` `        ``// converting string to int``        ``int` `num = stoi(str);`` ` `        ``if` `(isPrime(num))``            ``return` `true``;``    ``}``    ``return` `false``;``}``  ` `// Driver Code``int` `main()``{``    ``int` `N = 610;``    ``isPrimePossible(N) ? cout << ``"Yes"``                     ``: cout << ``"No"``;``    ``return` `0;``}`

## Java

 `// Java implementation to check if a number``// becomes prime by deleting any digit``import` `java.util.*;``class` `GFG{` `  ``// Function to check if N is prime``  ``static` `boolean` `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 to delete character at index i``  ``// from given String str``  ``static` `String deleteIth(String str, ``int` `i)``  ``{``    ``// Deletes character at position 4``    ``str = str.substring(``0``, i) +``            ``str.substring(i + ``1``);` `    ``return` `str;``  ``}` `  ``// Function to check if a number``  ``// becomes prime by deleting any digit``  ``static` `boolean` `isPrimePossible(``int` `N)``  ``{``    ``// Converting the number to String``    ``String s = String.valueOf(N);` `    ``// length of String``    ``int` `l = s.length();` `    ``// number should not be``    ``// of single digit``    ``if` `(l < ``2``)``      ``return` `false``;` `    ``// Loop to find all numbers``    ``// after deleting a single digit``    ``for` `(``int` `i = ``0``; i < l; i++)``    ``{` `      ``// Deleting ith character``      ``// from the String``      ``String str = deleteIth(s, i);` `      ``// converting String to int``      ``int` `num = Integer.valueOf(str);` `      ``if` `(isPrime(num))``        ``return` `true``;``    ``}``    ``return` `false``;``  ``}` `  ``// Driver Code``  ``public` `static` `void` `main(String[] args)``  ``{``    ``int` `N = ``610``;``    ``if` `(isPrimePossible(N))``      ``System.out.print(``"Yes"``);``    ``else``      ``System.out.print(``"No"``);``  ``}``}` `// This code is contributed by Rajput-Ji`

## Python3

 `# Python3 implementation to check if a number``# becomes prime by deleting any digit` `# Function to check if N is prime``#from builtins import range``def` `isPrime(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` `or` `n ``%` `3` `=``=` `0``):``        ``return` `False``;` `    ``for` `i ``in` `range``(``5``, ``int``(n``*``*``1``/``2``), ``6``):``        ``if` `(n ``%` `i ``=``=` `0` `or` `n ``%` `(i ``+` `2``) ``=``=` `0``):``            ``return` `False``;` `    ``return` `True``;` `# Function to delete character at index i``# from given String str``def` `deleteIth(``str``, i):``  ` `    ``# Deletes character at position 4``    ``str` `=` `str``[``0``:i] ``+` `str``[i ``+` `1``:];` `    ``return` `str``;` `# Function to check if a number``# becomes prime by deleting any digit``def` `isPrimePossible(N):``  ` `    ``# Converting the number to String``    ``s ``=` `str``(N);` `    ``# length of String``    ``l ``=` `len``(s);` `    ``# number should not be``    ``# of single digit``    ``if` `(l < ``2``):``        ``return` `False``;` `    ``# Loop to find all numbers``    ``# after deleting a single digit``    ``for` `i ``in` `range``(l):` `        ``# Deleting ith character``        ``# from the String``        ``str1 ``=` `deleteIth(s, i);` `        ``# converting String to int``        ``num ``=` `int``(str1);` `        ``if` `(isPrime(num)):``            ``return` `True``;` `    ``return` `False``;` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ``N ``=` `610``;``    ``if` `(isPrimePossible(N)):``        ``print``(``"Yes"``);``    ``else``:``        ``print``(``"No"``);` `# This code is contributed by Rajput-Ji`

## C#

 `// C# implementation to check if a number``// becomes prime by deleting any digit``using` `System;` `class` `GFG{` `// Function to check if N is prime``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 to delete character at index i``// from given String str``static` `String deleteIth(String str, ``int` `i)``{``    ` `    ``// Deletes character at position 4``    ``str = str.Substring(0, i) +``          ``str.Substring(i + 1);` `    ``return` `str;``}` `// Function to check if a number``// becomes prime by deleting any digit``static` `bool` `isPrimePossible(``int` `N)``{``    ` `    ``// Converting the number to String``    ``String s = String.Join(``""``, N);` `    ``// length of String``    ``int` `l = s.Length;` `    ``// number should not be``    ``// of single digit``    ``if` `(l < 2)``        ``return` `false``;` `    ``// Loop to find all numbers``    ``// after deleting a single digit``    ``for``(``int` `i = 0; i < l; i++)``    ``{` `        ``// Deleting ith character``        ``// from the String``        ``String str = deleteIth(s, i);` `        ``// converting String to int``        ``int` `num = Int32.Parse(str);` `        ``if` `(isPrime(num))``            ``return` `true``;``    ``}``    ``return` `false``;``}` `// Driver Code``public` `static` `void` `Main(String[] args)``{``    ``int` `N = 610;``    ` `    ``if` `(isPrimePossible(N))``        ``Console.Write(``"Yes"``);``    ``else``        ``Console.Write(``"No"``);``}``}` `// This code is contributed by Rajput-Ji`

## Javascript

 ``
Output
`Yes`

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

My Personal Notes arrow_drop_up