# Unprimeable Numbers

• Last Updated : 25 May, 2021

Given an integer N, the task is to check if N is a unprimeable numbers.

Unprimeable numbers are composite numbers which cannot be turned into a prime by changing a single digit.

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.

Examples:

Input: N = 200
Output: Yes
Input: N = 30
Output: No

Solution : If the number is prime return false else We will replace every digit of the number with all possible digits from 0 to 9 for every position one by one and return false if number formed by this is a prime number.

## C++

 `// C++ Program to check if n``// is unprimeable Number``#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 check if n``// is a unprimeable Number``bool` `isUnPrimeableNum(``int` `N)``{``    ``// number should be composite``    ``if` `(isPrime(N))``        ``return` `false``;` `    ``// converting N to string``    ``string s = to_string(N);` `    ``// loop to change digit at every character``    ``// one by one.``    ``for` `(``int` `j = 0; j < s.length(); j++) {` `        ``string str = s;` `        ``// loop to store every digit one by one``        ``// at index j``        ``for` `(``int` `i = 0; i <= 9; i++) {` `            ``char` `c = ``'0'` `+ i;``            ``str[j] = c;``            ``int` `Num = stoi(str);` `            ``if` `(str[j] != s[j]``                ``&& isPrime(Num)) {``                ``return` `false``;``            ``}``        ``}``    ``}``    ``return` `true``;``}` `// Driver code``int` `main()``{``    ``int` `n = 200;``    ``if` `(isUnPrimeableNum(n))``        ``cout << ``"Yes"``;``    ``else``        ``cout << ``"No"``;``    ``return` `0;``}`

## Java

 `// Java program to check if n``// is unprimeable Number``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 check if n``// is a unprimeable Number``static` `boolean` `isUnPrimeableNum(``int` `N)``{``    ` `    ``// Number should be composite``    ``if` `(isPrime(N))``        ``return` `false``;` `    ``// Converting N to String``    ``String s = String.valueOf(N);` `    ``// Loop to change digit at every``    ``// character one by one.``    ``for``(``int` `j = ``0``; j < s.length(); j++)``    ``{``       ``char` `[]str = s.toCharArray();``       ` `       ``// Loop to store every digit one``       ``// by one at index j``       ``for``(``int` `i = ``0``; i <= ``9``; i++)``       ``{``          ``char` `c = (``char``) (``'0'` `+ i);``          ``str[j] = c;``          ``int` `Num = Integer.valueOf(``new` `String(str));``          ` `          ``if` `(str[j] != s.charAt(j) && isPrime(Num))``          ``{``              ``return` `false``;``          ``}``       ``}``    ``}``    ``return` `true``;``}` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``int` `n = ``200``;``    ` `    ``if` `(isUnPrimeableNum(n))``        ``System.out.print(``"Yes"``);``    ``else``        ``System.out.print(``"No"``);``}``}` `// This code is contributed by Princi Singh`

## Python3

 `# Python3 Program to check if n``# is unprimeable Number` `# function to check if N is prime``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``*``*``0.5``) ``+` `1``, ``6``):``        ``if` `(n ``%` `i ``=``=` `0` `or` `n ``%` `(i ``+` `2``) ``=``=` `0``):``            ``return` `False` `    ``return` `True` `# function to check if n``# is a unprimeable Number``def` `isUnPrimeableNum(N):` `    ``# number should be composite``    ``if` `(isPrime(N)):``        ``return` `False` `    ``# converting N to string``    ``s ``=` `str``(N)` `    ``# loop to change digit at every character``    ``# one by one.``    ``for`  `j ``in` `range``(``len``(s)):``        ``str1 ``=` `s` `        ``# loop to store every digit one by one``        ``# at index j``        ``for` `i ``in` `range``(``10``):``            ``c ``=` `str``(i)``            ``str1 ``=` `str1[ : j] ``+` `c ``+` `str1[j ``+` `1` `: ]``            ``Num ``=` `int``(str1)``            ``if` `(str1[j] !``=` `s[j] ``and` `isPrime(Num)) :``                ``return` `False` `    ``return` `True` `# Driver code``n ``=` `200``if` `(isUnPrimeableNum(n)):``    ``print``(``"Yes"``)``else``:``    ``print``(``"No"``)` `# This code is contributed by Vishal Maurya.`

## C#

 `// C# program to check if n``// is unprimeable Number``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 check if n``// is a unprimeable Number``static` `bool` `isUnPrimeableNum(``int` `N)``{``    ` `    ``// Number should be composite``    ``if` `(isPrime(N))``        ``return` `false``;` `    ``// Converting N to String``    ``String s = String.Join(``""``,N);` `    ``// Loop to change digit at every``    ``// character one by one.``    ``for``(``int` `j = 0; j < s.Length; j++)``    ``{``        ``char` `[]str = s.ToCharArray();``            ` `        ``// Loop to store every digit one``        ``// by one at index j``        ``for``(``int` `i = 0; i <= 9; i++)``        ``{``            ``char` `c = (``char``) (``'0'` `+ i);``            ``str[j] = c;``            ``int` `Num = Int32.Parse(``new` `String(str));``                ` `            ``if` `(str[j] != s[j] && isPrime(Num))``            ``{``                ``return` `false``;``            ``}``        ``}``    ``}``    ``return` `true``;``}` `// Driver code``public` `static` `void` `Main(String[] args)``{``    ``int` `n = 200;``    ` `    ``if` `(isUnPrimeableNum(n))``        ``Console.Write(``"Yes"``);``    ``else``        ``Console.Write(``"No"``);``}``}` `// This code is contributed by Princi Singh`

## Javascript

 ``
Output:
`Yes`

My Personal Notes arrow_drop_up