Ответ:

Найдём скорость теплохода против течения:

504 : 21 = 24 км/ч.

Скорость теплохода в стоячей воде на 2 км/ч больше скорости против течения:

24 + 2 = 26 км/ч.

Тогда скорость по течению равна:

26 + 2 = 28 км/ч.

Найдём время в пути по течению:

504 : 28 = 18 ч.

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