Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program ProjectB_2;
- {$APPTYPE CONSOLE}
- var
- k, n, m, q : int64;
- resn, resm : array[1..10000] of int64;
- w, ck : integer;
- begin
- readln(k);
- ck := k;
- q := 0;
- m := 1;
- if (k = 2) then begin
- writeln(0);
- halt(0);
- end;
- while (m <= round(sqrt(ck))) do begin
- if ((k + m) mod (2 * m + 1) = 0) then begin
- n := (k + m) div (2 * m + 1);
- if (n > m) and (2 * n * m + n - m = k) then begin
- inc(q);
- resm[q] := (k + m) div (2 * m + 1);
- resn[q] := m;
- end;
- end;
- inc(m);
- end;
- n := 1;
- while (n <= round(sqrt(ck))) do begin
- if ((k + n - 1) mod (2 * n + 1) = 0) and ((k + n - 1) div (2 * n + 1) >= n) then begin
- m := (k + n - 1) div (2 * n + 1);
- if (n <= m) and (2 * n * m - n + m + 1 = k) then begin
- inc(q);
- resn[q] := (k + n - 1) div (2 * n + 1);
- resm[q] := n;
- end;
- end;
- inc(n);
- end;
- writeln(q);
- for w := 1 to q do
- writeln(resn[w], ' ', resm[w]);
- readln;
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement