Условие: Магическим называется квадрат, в котором сумма чисел по всем горизонталям, вертикалям и диагоналям совпадает. Найти все магические квадраты 3х3 составленые из девяти цифр (1..9).
Решение: label l1,l2,l3,l4,l5,l6,l7,l8; var a1,a2,a3,a4,a5,a6,a7,a8,a9,x,n:integer; begin writeln('Поиск магических квадратов 3*3...'); for a1:=1 to 9 do begin for a2:=1 to 9 do begin for a3:=1 to 9 do begin for a4:=1 to 9 do begin for a5:=1 to 9 do begin for a6:=1 to 9 do begin for a7:=1 to 9 do begin for a8:=1 to 9 do begin for a9:=1 to 9 do begin if (a9=a8) or (a9=a7) or (a9=a6) or (a9=a5) or (a9=a4) or (a9=a3) or (a9=a2) or (a9=a1) then goto l1; if (a8=a7) or (a8=a6) or (a8=a5) or (a8=a4) or (a8=a3) or (a8=a2) or (a8=a1) then goto l2; if (a7=a6) or (a7=a5) or (a7=a4) or (a7=a3) or (a7=a2) or (a7=a1) then goto l3; if (a6=a5) or (a6=a4) or (a6=a3) or (a6=a2) or (a6=a1) then goto l4; if (a5=a4) or (a5=a3) or (a5=a2) or (a5=a1) then goto l5; if (a4=a3) or (a4=a2) or (a4=a1) then goto l6; if (a3=a2) or (a3=a1) then goto l7; if (a2=a1) then goto l8; x:=a1+a2+a3; if (a4+a5+a6=x) and (a7+a8+a9=x) and (a1+a4+a7=x) and (a2+a5+a8=x) and (a3+a6+a9=x) and (a1+a5+a9=x) and (a3+a5+a7=x) then begin n:=n+1; writeln('Квадрат ',n); writeln(a1,' ',a2,' ',a3); writeln(a4,' ',a5,' ',a6); writeln(a7,' ',a8,' ',a9); readln; end; l1:end; l2:end; l3:end; l4:end; l5:end; l6:end; l7:end; l8:end; end; end.