// PascalABC.NET 3.3, сборка 1540 от 16.09.2017 // Внимание! Если программа не работает, обновите версию!
begin var n,p:integer; var s:string; for var a:=1 to 9 do for var b:=0 to 9 do for var c:=0 to 9 do begin n:=100*a+10*b+c; s:=(n*n).ToString.Right(3); p:=Pos(a.ToString,s); if p>0 then begin Delete(s,p,1); p:=Pos(b.ToString,s); if p>0 then begin Delete(s,p,1); if s=c.ToString then Write(n,'(',n*n,')',' ') end end end end.
Результат 205(42025) 376(141376) 421(177241) 625(390625) 963(927369)
Уровень А type num=integer; { можно поменять на real, longint, даже char... }
procedure Swap(var a,b:num); { меняет местами значения a и b } var t:num; begin t:=a; a:=b; b:=t end;
procedure Moving(var a,b,c:num); begin if a>b then begin Swap(a,b); if b>c then begin Swap(b,c); if a>b then Swap(a,b) end end else begin if b>c then Swap(b,c); if a>b then Swap(a,b) end end;
var a,b,c:num; begin Write('Введите три числа: '); Read(a,b,c); Moving(a,b,c); Writeln(a,' ',b,' ',c) end.
Уровень В function Gcd(a,b: longint): longint; { Нахождение НОД } var i: longint; begin while b <> 0 do begin a := a mod b; i := b; b := a; a := i end; gcd := a end;
procedure ShortFraction(var m,n:longint); var k:longint; begin k:=Gcd(m,n); m:=m div k; n:=n div k end;
var a,b:longint; begin Write('Введите числитель и знаменатель дроби: '); Readln(a,b); ShortFraction(a,b); Writeln('Дробь после сокращения равна ',a,'/',b) end.
Тестовое решение: Введите числитель и знаменатель дроби: 25 15 Дробь после сокращения равна 5/3