Questions :
A set of digits S separated by space is passed as input. A number N is also passed as the input. The program must find the two numbers N1, N2 from S so that N1*N2 = N and print them.
Input Format: The set of digits in S separated by space.
Boundary Conditions: The count of digits in S is less than 50.
Output Format: N1 followed by N2 separated by a space(Here N1 >= N2)
Example Input/Output 1:
Input:
6 8 5 3 9 4
552337
Output:
859 643
Explanation:
Using the digits given 859*643 = 552337. As 859 > 643 it is printed first.
Example Input/Output 2:
Input:
2 1 2
42
Output:
21 2
Any possible ideas about how to go about doing this will be appreciated.
Have a look at the
itertools.permutations
function. Then it's simply merging the strings, parsing asint
and multiplying them until you find the right one.Alternatively you can factorize N and then test if the pair of factors contains all the digits in S
Usage :