Пандигитальный продукт
Панцифровое число - это число, в котором все цифры от 1 до 9 используются ровно один раз. Нам дано число, нам нужно найти, есть ли два числа, умножение которых дает число, а три числа вместе являются панцифровыми.
Примеры:
Ввод: 7254 Выход: Да 39 * 186 = 7254. Мы можем заметить, что три числа 39, 186 и 7254 вместе имеют все цифры от 1 до 9. Ввод: 6952 Выход: Да
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 <bits/stdc++.h> 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
<?php // PHP 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 ( strlen ( $str ) != 9) return false; $x = str_split ( $str ); sort( $x ); $x = implode( $x ); return strcmp ( $x , "123456789" ); } // calculate the multiplicand, // multiplier, and product // eligible for pandigital function PandigitalProduct_1_9( $n ) { for ( $i = 1; $i * $i <= $n ; $i ++) if ( $n % $i == 0 && isPandigital( strval ( $n ) . strval ( $i ) . strval ((int)( $n / $i )))) return true; return false; } // Driver Code $n = 6050; if (PandigitalProduct_1_9( $n )) echo "yes" ; else echo "no" ; // This code is contributed // by mits ?> |
Выход:
да
Вниманию читателя! Не прекращайте учиться сейчас. Получите все важные математические концепции для соревновательного программирования с курсом Essential Maths for CP по доступной для студентов цене. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .