18.96 The perimeter of an equilateral triangle is $1989 \mathrm{~cm}$ larger than that of a square, the side length of the triangle is $d \mathrm{~cm}$ larger than that of the square, and the perimeter of the square is greater than 0. Then the number of positive integers that $d$ cannot take is
(A) 0.
(B) 9.
(C) 221.
(D) 663.
(E) infinitely many.
(40th American High School Mathematics Examination, 1989)
[Solution] If we set the side lengths of the square and the equilateral triangle as $b, a$ respectively, according to the problem, we have
$$
\left\{\begin{array}{l}
3 a-4 b=1989, \\
a-b=d, \\
b>0 .
\end{array}\right.
$$

Substituting (2) into (1) gives $3 d-b=1989$, which simplifies to $d=663+\frac{b}{3}$. Since $b>0$, it follows that $d>663$. Therefore, $d$ cannot take any of the 663 positive integers from 1 to 663. Hence, the answer is $(D)$.