Ответ:

Скорость теплохода против течения: \(504 : 21 = 24\) км/ч.

Скорость теплохода по течению: \(24 + 2 + 2 = 28\) км/ч.

Здесь собственная скорость теплохода равна \(24 + 2 = 26\) км/ч, поэтому скорость по течению составляет \(26 + 2 = 28\) км/ч.

Время движения по течению: \(504 : 28 = 18\) ч.

Ответ: 18 часов.