Now, I have thought of a way how you can show your daughter how to do this in way somewhat less cumbersome.
This includes some clever thinking at the start, and thus difficult for most kids to find out of their own.
First:
The biggest 3-digit number out of 2,3, 5 or 7 we can make is 777.
Now, the least 2-digit number we can form is 22.
If we multiply 22 with 777, we find that the answer is too little for D (it will have a 1 as first digit), that is, we CAN'T have 2 as our first digit in B, because any 3-digit number less than 777 will face the same problem.
Thus, we can try out multiplying 777 with 32, 33 and 37 to see if we get anything, further than that, we need not go, since 5*7=35, which gives a too big number for D.
We find that 777 can't work as our number A, so we go on to 775.
We know from previous that 2 can't be our first digit in B, so we start out multiplying 775 with 32, which doesn't work.
However, on the very next try, we are very lucky because 775*33 DOES work, and you can tell your daughter she is finished!
If she asks if there can't be any other solutions, then tell her that to answer that question with a NO, you'll need to check out all the other possibilities, and that takes a lot of time.
I'm sure she'll be happy to have found the answer, and I assume that this was the method meant that the kids should come up with on their own.
Note that in general, this technique isn't any less cumbersome than what I've done, it is only because the true solution in this particular problem happens to come so early on in the algorithm that it seems more efficient.
All algorithms that solves such problems are really to go through each option in a systematic manner. One algorithm goes through the options in its own way, another algorithm through the same options in ITS own way (ckecking the options in some other sequence).
It is mere coincidence whenever one algorithm was lucky enough to start close to the solution.
In many problems of this sort, there will be more than one solution, and thus you'll need to go through each and every option. This shows that the particular sequence you are checking your options in isn't inherently any better than any other sequence.
Note in particular that if we had happened to start out with A=222 and B=77 instead, we would have been very unlucky in our choice of algorithm for this particular problem, and there are no fundamental LOGICAL reasons that makes this unlucky choice any worse than starting out with A=777 B=22.
Thus, the unfortunate kid might start out with this choice, and simply get too tired to finish the problem, even though his reasoning behind his idea is as good as anyone else's.
That is why this is a very bad exercise.
As a final comment on my own algorithm, note that I essentially checked CLASSES of numbers with some common property (say, those possible B's having a 7 in them), rather than individual checks.
Usually, this is way faster than to try out one multiplication after the other, but it is definitely too abstract to be hit upon as a strategy by a 9-year old.