Скорость теплохода против течения реки = 504/21=24 км/ч
Собственная Скорость теплохода=24+2=26 км/ч
Скорость по течению реки = 26+2=28 км/ч
Значит он пройдет 504/28= за 18 часов
P.S. Отмечая лучшее решение, Вы возвращаете себе 25% потраченных баллов.