504 : 21 = 24 км/ч - скорость теплохода против течения реки
24 + 2 = 26 км/ч - собственная скорость теплохода
26 + 2 = 28 км/ч - скорость теплохода по течению реки
504 : 28 = за 18 часов пройдет
----------------------------------------------------------------------------------------------