All 3-digit entries must consist of two 2-digit numbers overlapped by 1 digit: (_x, x_). Four-digit entries can be (_x, x__) overlapped by 1 or (_xy, xy_) overlapped by 2. Five-digit entries can be (_x, x___) or (__x, x__) overlapped by 1, (_xy, xy__) overlapped by 2 or (_xyz, xyz_) overlapped by 3.

At 25ac, the second number is a multiple of 150, so it must end with 50 or 00.
The two numbers at 21dn are now (_x, x0) with a factor of 2, so x must be 5,
which makes the second number 50, making the first 25, so **21dn = 250** (25, 50).

23ac’s second number ends in 5 and is 3 times the first number, so the first number ends in 5.
The entry then consists of either (_5, 5_5) or (_x5, x55).
Since 95 × 3 = 285 is too small for 5_5, the first case is ruled out.
The second number is _55, so to be divisible by 3 it’s one of {255, 555, 855}.
Only the last of those has an overlappable result when divided by 3, so **23ac = 2855** (285, 855).

The second number at 19dn is even, so it must end in 0 (making 25ac end in 00, not 50) so it’s _50. 150 / 2 = 75, which can’t overlap, so the first number has 3 digits: (_x5, x50), where x must be 2 or 7 (because for any n ending in 50, n/2 ends in 25 or 75). Thus 19dn is either (125, 250) or (375, 750).

3dn’s factor is 10, so its second number is the same as its first number but with 0 added at the end
(thus it must be (xx, xx0) entered as xxx0, for some non-zero digit x).
2dn’s factor is 5, so its second number ends in 0 or 5.
12ac’s factor is 34, so its second number has more digits than its first number,
ie, 12ac consists of a 2-digit number and a 3-digit number.
The second number can’t start with 0, so 12ac must match (_5, 5_0).
Since 25 × 34 = 850 is too large, the first number must be 15, so **12ac = 1510** (15, 510).

13dn is now (1x, x_) with a factor of 2.
Any number 1x × 2 must start with 2 or 3;
13 × 2 = 26 which doesn’t overlap, so **13dn = 124** (12, 24).

12dn’s factor is 4, so it must end with an even digit.
24ac’s factor is 2, so it must start with a digit less than 5 (or its second number would need 3 digits).
The possibilities are (2x, x_) and (4x, x_), which can only be (24, 48) or (49, 98)
(not (25, 50) because it’s already used at 21dn).
16dn’s factor is 47, so it must consist of a 2-digit number and a 3-digit number, the latter ending in 4 or 9.
The first number must then end in 2 or 7 to give the right final digit when multiplied by 47,
so we have (_2, 2_4) or (_7, 7_9).
The maximum value for 2_4 is 294 and 294 / 47 = 6.3 approximately,
so this possibility can’t give enough digits for the first number.
The maximum value for 7_9 is 799 and 799 / 47 = 17 exactly, which is the minimum possible for _7
(none of the other values for 7_9 can be multiples of 47, because 47 isn’t a factor of any of 10, 20, ..., 90).
Thus, **16dn = 1799** (17, 799) and **24ac = 498** (49, 98).

15ac is _12_ with a factor of 2.
Its second number must be 12_, so its first number is in the range 60 to 64.
Only 61 fits, so **15ac = 6122** (61, 122).

22ac’s factor is 14, so the second number has more digits than the first: we have (_9, 9__).
The first number must be between 900 / 14 = 64.3 and 999 / 14 = 71.4;
the only possibility ending in 9 is 69, so **22ac = 6966** (69, 966).

12dn is now 16_64.
Its factor of 4 is too small for its first number to have 2 digits
(4 × 16 = 64 but the second number would need to match 6_64),
so we have one of (16x, x64), (16x, 6x64), (16x6, 6x64).
For (16x, x64), x would have to be 1 or 6 to give a final digit of 4 when multiplied by 4;
161 × 4 = 644 which doesn’t fit; 166 × 4 = 664 is a possibility.
We can rule out (16x, 6x64) because both 161 and 166 give second numbers with only 3 digits.
For (16x6, 6x64), x must be 1 or 6 for the product to end in 64;
1616 × 4 = 6464, which doesn’t overlap; 1666 × 4 = 6664 is a possibility.
Thus we have two possibilities but they lead to the same entry,
so **12dn = 16664** (166, 664) or (1666, 6664).

17dn is 2_6_ with a factor of 12, so it must consist of (2x, x6_).
The second number is in the range 21 × 12 = 252 to 29 × 12 = 348, so x is 2 or 3.
23 × 12 = 276 which doesn’t overlap, so **17dn = 2264** (22, 264).

20ac is (2x, x_) with a factor of 2.
The second number must start with 4 or 5;
(25, 50) is already used at 21dn, so **20ac = 248** (24, 48).

18dn is _42_ with a factor of 3.
94 × 3 = 282 which is too small for the second number of 42_, so we have (_42, 42_).
The first number is in the range 420 / 3 = 140 to 429 / 3 = 143,
so it must be 142 and we have **18dn = 1426** (142, 426).

25ac is now 46_00.
Its factor of 150 means the second number must have 2 or 3 more digits than the first number,
so the first number must be 46 and we have **25ac = 46900** (46, 6900).

18ac starts with 1, its second digit is even (because 11dn has a factor of 4)
and its third digit is 1 or 3 (from 19dn).
Its factor of 31 means the second number has more digits than the first,
so the second number is in the range 10 × 31 = 310 to 18 × 31 = 558.
Thus the second number starts with 4 (the only even digit between 3 and 5)
and we have **18ac = 1434** (14, 434), which fixes **19dn = 3750** (375, 750).

11dn is (__, _4) with a factor of 4.
To be a multiple of 4, the second number must start with an even digit.
24 / 4 = 3, too small for the first number;
44 / 4 = 11 and 84 / 4 = 41 don’t fit, so **11dn = 164** (16, 64).

14ac is _6__, so its second number starts with 6;
its first and third digits are even because 4dn and 6dn have even factors.
Its first number can’t have 3 digits because 100 * 7 = 700 which is too big for 6__.
So we have (_6, 6__) and the factor of 7 means the second number must end in 2,
giving (_6, 6_2) with both missing digits even.
The first number is in the range 602 / 7 = 86 to 682 / 7 = 97.4.
The only value that is an even digit followed by 6 is 86, so **14ac = 8602** (86, 602).

16dn is (__, __0) with a factor of 16.
The first number can’t end with 0 because that would make the second number start with 0, so we have (_5, 5_0).
The first number is in the range 500 / 16 = 31.3 to 590 / 16 = 36.9,
so it must be 35 and **16dn = 3560** (35, 560).

5ac is (_3, 3_) with a factor of 3, so it can only be **5ac = 139** (13, 39).

7dn starts with 9 and its factor is 8, so its second number will have 1 more digit than its first number
and must start with 7 (900 × 8 = 7200 and 999 × 8 = 7992); thus we have (97x, 7x24).
For the second number to end in 4, the first number must end in 3 or 8,
but any number ending in 324 isn’t a multiple of 8, so we have **7dn = 97824** (978, 7824).

9a ends in 57 and its factor is 33, so we have (_x, x57).
For the second number to be a multiple of 3, x must be one of {3, 6, 9};
of the three possibilities, only 957 is a multiple of 11, so **9ac = 2957** (29, 957).

4dn is _2_8 and its factor is 2.
It can’t be (_2, 2_8) because the maximum value for the first number gives
92 × 2 = 184 for the second number, which is too small.
So we have (_2x, 2x8).
For the second number to end in 8, the first number must end in 4 or 9;
298 / 2 = 149, which doesn’t overlap, so **4dn = 1248** (124, 248).

10ac is (_x, x4) with a factor of 3.
For the second number to end in 4, the first number must end in 8,
so we have **10ac = 284** (28, 84).
This gives us 8 as the third digit of 3dn, which we previously determined was xxx0,
so **3dn = 8880** (88, 880).

1ac’s factor of 171 means its second number has 2 or 3 more digits than its first number,
so we have (_x, x_81).
For the second number to end in 1, the first number must end in 1,
so we have (_1, 1_81).
The first number must be in the range 1081 / 171 = 6.3 to 1981 / 171 = 11.6,
so **1ac = 11881** (11, 1881).

1dn is (1x, x_) with a factor of 3.
The second number is in the range 10 × 3 = 30 to 19 × 3 = 57,
so the first number is one of {13, 14, 15}.
(15, 45) doesn’t overlap and (13, 39) is already used at 5ac,
so **1dn = 142** (14, 42).

8ac is 4__8 and its factor is 2.
Its first number can’t have 2 digits because the maximum value would give 49 × 2 = 98,
too small for the 3 digits needed by the second number; thus we have (4xy, xy8).
Double any number 4xy will start with 8 or 9, so x is one of {8, 9};
but double the minimum of 480 is 960, so we have (49y, 9y8).
For the second number to end in 8, the first number must end in 4 or 9;
494 × 2 = 988, which doesn’t overlap, so **8ac = 4998** (499, 998).

2dn is 19_5 and its factor is 5.
Its first number can’t be 19 because 19 × 5 = 95 is too small for the second number,
so we have (19x, 9x5) where x must be odd.
The only one of the 5 possibilities that overlaps is **2dn = 1995** (199, 995),
which completes the grid.