Теплоход против течения проходит за 21ч. Значит он движется со скоростью 504/21=24 км/ч, но так как скорость реки движущаяся против теплохода равна 2км/ч, то собственная скорость теплохода равна 24+2=26 км/ч. Это же расстояние по течению реки теплоход будет плыть с скоростью 26+2=28 км/ч. А значит расстояние в 504 км теплоход пройдет по течению реки за 504/28=18 часов.