13. Skaičių grupės. 
Svarbiausia uždavinio idėja – N2 skaičių išdėstymas ratu. Skaičius suskirstome į N grupių šitaip. Imame skaičių 1, jį pažymime, tai bus pirmosios grupės narys. Šiai grupei priklausys kas N + 1 skaičius. Pažymėję paskutinį šios grupės narį grįžtame atgal per N - 1. Šis narys priklauso antrajai grupei ir yra pirmasis šios grupės narys. Nuo jo vėl ratu einame į priekį. Procesą kartojame tol, kol suformuojame N grupių. 
program skaičių_grupės;
  var N,  { duotasis skaičius }
      N2, { jo kvadratas }
      sk, { eilinis dėmuo }
      s,  { eilutės suma }
      i, j: integer;

  function succ_sk (N2, sk, x: integer): integer;
  { ratu į priekį nuo sk per x skaičių }
  begin
    if sk + x > N2
       then succ_sk := sk + x - N2
       else succ_sk := sk + x
  end;

  function pred_sk (N2, sk, x: integer): integer;
  { ratu atgal nuo sk per x skaičių }
  begin
    if sk >= x
       then pred_sk := sk - x
       else pred_sk := sk + N2 - x
  end;

begin
  write ('Įveskite skaičių N: ');
  readln (n);
  sk := 1;
  N2 := N * N;  { pradinės reikšmės }
  for i := 1 to N do { N eilučių }
    begin
      s := 0; { sumuojamas N - 1 dėmuo }
      for j := 1 to N-1 do
        begin
          write (sk: 4); { spausdinamas eilutės narys }
          s := s + sk;
          sk := succ_sk (N2, sk, N+1) { tolesnis narys }
        end;
      write (sk: 4);  { spausdinamas paskutinis eilutės narys }
      s := s + sk;
      writeln (s: 6);  { spausdinama eilutės suma }
      { randamas kitos eilutės pirmasis narys }
      sk := pred_sk (N2, sk, N-1) 
    end
end.

Testo nr.	Pradinis duomuo	Rezultatai	Paaiškinimai	
1	1	  1     1	Paprasčiausias atvejis	
2	3	  1   5   9    15
  7   2   6    15
  4   8   3    15		
3	5	...	Sudėtingesni	
4	18	...	atvejai