Skip to content

# Pandigital Product

• Difficulty Level : Hard
• Last Updated : 17 Jun, 2022

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

 ``

## Javascript

 `// JavaScript code to check the number` `// is Pandigital Product or not`   `// To check the string formed ` `// from multiplicand, multiplier` `// and product is pandigital` `function` `isPandigital(str)` `{` `    ``if` `(str.length != 9)` `        ``return` `false``;` `    `  `    ``let ch = Array.from(str);` `    ``ch.sort();`   `    ``let s = ch;` `    `  `    ``if``(s == ``"123456789"``)` `        ``return` `true``;` `    ``else` `        ``return` `false``;` `}`   `// calculate the multiplicand, ` `// multiplier, and product` `// eligible for pandigital` `function` `PandigitalProduct_1_9(n)` `{` `    ``for` `(let i = 1; i * i <= n; i++) ` `        ``if` `(n % i == 0 && isPandigital(n.toString() + i.toString() + (n / i).toString()));` `            ``return` `true``;` `    ``return` `false``;` `}`   `// Driver Code` `let n = 6952;` `if` `(PandigitalProduct_1_9(n) == ``true``)` `    ``console.log(``"yes"``);` `else` `    ``console.log(``"no"``);`   `// This code is contributed by Nidhi goel`

Output:

`yes`

My Personal Notes arrow_drop_up
Recommended Articles
Page :