program Chislo; uses wincrt; var k,m,n,x:integer; ks,ms,ns:string; code:integer; priznak:byte; Begin writeln ('Задумано некоторое число X (X<100).'); writeln ('Известны числа k, m, n -'); writeln ('остатки от деления этого числа на 3, 5, 7.'); writeln ('Найти X.'); writeln ('--------------------------------------------'); writeln ('Введите остаток от деления числа X на 3'); repeat Readln (ks); val(ks,k,code); if ((code=0) and ((k>2) or (k<0))) then writeln ('Неправильный ввод. Остаток от деления - целое число от 0 до 2'); if not(code=0) then writeln ('Это - не целое число. Повторите ввод.'); until ((code=0) and ((k<3) and (k>=0))); writeln ('Введите остаток от деления числа X на 5'); repeat Readln (ms); val(ms,m,code); if ((code=0) and ((m>4) or (m<0))) then writeln ('Неправильный ввод. Остаток от деления - целое число от 0 до 4'); if not(code=0) then writeln ('Это - не целое число. Повторите ввод.'); until ((code=0) and ((m<5) and (m>=0))); writeln ('Введите остаток от деления числа X на 7'); repeat Readln (ns); val(ns,n,code); if ((code=0) and ((n>6) or (n<0))) then writeln ('Неправильный ввод. Остаток от деления - целое число от 0 до 6'); if not(code=0) then writeln ('Это - не целое число. Повторите ввод.'); until ((code=0) and ((n<7) and (n>=0))); writeln ('--------------------------------------------'); priznak:=0; for x:=1 to 100 do if (((x mod 3)=k) and ((x mod 5)=m) and ((x mod 7)=n)) then begin writeln ('Число с остатками ',k,',',m,',',n,' от деления на 3,5,7 равно ',x); priznak:=1; end; if priznak=0 then writeln ('Число X<100 с остатками ',k,',',m,',',n,' от деления на 3,5,7 - не существует.'); End.