Related Articles

# Pandigital Product

• Difficulty Level : Hard
• Last Updated : 16 Oct, 2020

A Pandigital Number is number which makes the use of all digits 1 to 9 exactly once. We are given a number, we need to find if there are two numbers whose multiplication is given number and given three numbers together are pandigital.

Examples:

```Input : 7254
Output : Yes
39 * 186 = 7254. We can notice that
the three numbers 39, 186 and 7254
together have all digits from 1 to 9.

Input : 6952
Output : Yes

```

The idea is to consider all pairs that multiply to given number. For every pair, create a string containing three numbers (given number and current pair). We sort the created string and check if sorted string is equal to “123456789”.

## C++

 `// C++ code to check the number``// is Pandigital Product or not``#include ``using` `namespace` `std;` `// To check the string formed``// from multiplicand, multiplier``// and product is pandigital``bool` `isPandigital(string str)``{``    ``if` `(str.length() != 9)``        ``return` `false``;``    ` `    ``char` `ch[str.length()];``    ``strcpy``(ch, str.c_str());``    ``sort(ch, ch + str.length());``    ``string s = ch;``    ` `    ``if``(s.compare(``"123456789"``) == 0)``        ``return` `true``;``    ``else``        ``return` `true``;``}` `// calculate the multiplicand,``// multiplier, and product``// eligible for pandigital``bool` `PandigitalProduct_1_9(``int` `n)``{``    ``for` `(``int` `i = 1; i * i <= n; i++)``        ``if` `(n % i == 0 && isPandigital(to_string(n) +``                                       ``to_string(i) +``                                   ``to_string(n / i)))``            ``return` `true``;``    ``return` `false``;``}` `// Driver Code``int` `main()``{``    ``int` `n = 6952;``    ``if` `(PandigitalProduct_1_9(n) == ``true``)``        ``cout << ``"yes"``;``    ``else``        ``cout << ``"no"``;``    ``return` `0;``}` `// This code is contributed by``// Manish Shaw(manishshaw1)`

## Java

 `// Java code to check the number``// is Pandigital Product or not``import` `java.io.*;``import` `java.util.*;``class` `GFG {` `    ``// calculate the multiplicand, multiplier, and product``    ``// eligible for pandigital``    ``public` `static` `boolean` `PandigitalProduct_1_9(``int` `n)``    ``{``        ``for` `(``int` `i = ``1``; i*i <= n; i++)``            ``if` `(n % i == ``0` `&& isPandigital(``""` `+ n + i + n / i))``                ``return` `true``;``        ``return` `false``;``    ``}` `    ``// To check the string formed from multiplicand``    ``// multiplier and product is pandigital``    ``public` `static` `boolean` `isPandigital(String str)``    ``{``        ``if` `(str.length() != ``9``)``            ``return` `false``;``        ``char` `ch[] = str.toCharArray();``        ``Arrays.sort(ch);``        ``return` `new` `String(ch).equals(``"123456789"``);``    ``}` `    ``// Driver function``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `n = ``6952``;``        ``if` `(PandigitalProduct_1_9(n) == ``true``)``            ``System.out.println(``"yes"``);``        ``else``            ``System.out.println(``"no"``);``    ``}``}`

## Python3

 `# Python3 code to check the number``# is Pandigital Product or not` `# Calculate the multiplicand,``# multiplier, and product``# eligible for pandigital``def` `PandigitalProduct_1_9(n):``    ` `    ``i ``=` `1``    ``while` `i ``*` `i <``=` `n:``        ` `        ``if` `((n ``%` `i ``=``=` `0``) ``and``             ``bool``(isPandigital(``str``(n) ``+``                               ``str``(i) ``+``                               ``str``(n ``/``/` `i)))):``            ``return` `bool``(``True``)``            ` `        ``i ``+``=` `1``    ` `    ``return` `bool``(``False``)` `# To check the string formed from``# multiplicand multiplier and``# product is pandigital``def` `isPandigital(``Str``):` `    ``if` `(``len``(``Str``) !``=` `9``):``        ``return` `bool``(``False``)``        ` `    ``ch ``=` `"".join(``sorted``(``Str``))``    ` `    ``if` `(ch ``=``=` `"123456789"``):``        ``return` `bool``(``True``)``    ``else``:``        ``return` `bool``(``False``)` `# Driver code``n ``=` `6952``if` `(``bool``(PandigitalProduct_1_9(n))):``    ``print``(``"yes"``)``else``:``    ``print``(``"no"``)` `# This code is contributed by divyeshrabadiya07`

## C#

 `// C# code to check the number``// is Pandigital Product or not.``using` `System;` `class` `GFG {` `    ``// calculate the multiplicand,``    ``// multiplier, and product``    ``// eligible for pandigital``    ``public` `static` `bool` `PandigitalProduct_1_9(``int` `n)``    ``{``        ``for` `(``int` `i = 1; i*i <= n; i++)``            ``if` `(n % i == 0 && isPandigital(``""` `+ n``                                      ``+ i + n / i))``                ``return` `true``;``                ` `        ``return` `false``;``    ``}` `    ``// To check the string formed from multiplicand``    ``// multiplier and product is pandigital``    ``public` `static` `bool` `isPandigital(String str)``    ``{``        ``if` `(str.Length != 9)``            ``return` `false``;``            ` `        ``char` `[]ch = str.ToCharArray();``        ``Array.Sort(ch);``        ` `        ``return` `new` `String(ch).Equals(``"123456789"``);``    ``}` `    ``// Driver function``    ``public` `static` `void` `Main()``    ``{``        ``int` `n = 6952;``        ` `        ``if` `(PandigitalProduct_1_9(n) == ``true``)``            ``Console.Write(``"yes"``);``        ``else``            ``Console.Write(``"no"``);``    ``}``}` `// This code is contributed by nitin mittal.`

## PHP

 ``

Output:

```yes

```

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up