1. Из 9-литрового перелить в 5-литровое (9-5=4, т.е. в 5-литровом 5 и в 9-литровом 4)2. Вылить из 5-литрового и перелить оставшиеся 4 литра из 9-литрового (в 5-литровом 4 и в 9-литровом 0)3. Наполнить 9-литровое и перелить из него в 5-литровое. Т.к. в 5-литровом уже есть4 литра, то в него войдет только 1 литр. В 9-литровом соответственно останется 8 литров.4. Вылить из 5-литрового всё и в него перелить из 9-литрового (8-5=3, т.е. в 5-литровом будет 5, а в 9-литровом - 3 литра)5. 5 литров вылить, а 3 принести )))
Программа Вот: Program z1;Var a,b,c,d,k:integer;BeginWriteln('Введите трехзначное число');REadln(a);While a<>0 do beginWriteln('Введите трехзначное число');REadln(a);b:=a div 100 mod 10;c:=a div 10 mod 10;d:=a mod 10;if b+c+d div 10 >0 then writeln('Сумма цифр- двузначное число') else writeln ('Нет, сумма цифр не двузначное число');if b*C*D div 100 >0 then writeln('Произведение цифр- терхзначное число') else writeln ('Нет, произведение цифр не трехзначное число число');Writeln ('Введите любое число');Readln (k);If b*c*d>k then writeln('Произведение цифр больше числа') else writeln('Произведение меньше числа');if B+c+d div 5 =0 then writeln('Сумма цифр числа кратна 5') else writeln ('Сумма цифр не кратна 5');if B+c+d div k =0 then writeln('Сумма цифр числа кратна числу, введенному с клавиатуры') else writeln ('Сумма цифр не кратна числу, введенному с клавиатуры');End;End. Есть маленькая проблема в начале, не помню как прописывать, поэтому число первый раз нужно вводить 2 раза, если не устраевает, можете воспользоваться другими ресурсами