[Thuật toán] Đếm hình vuông
{$MODE OBJFPC}
program SquareCounter;
const
InputFile = 'SQUARES.INP';
OutputFile = 'SQUARES.OUT';
m = 2013;
var
fi, fo: TextFile;
n: Int64;
x: array[1..3] of Int64;
i: Integer;
res: Int64;
begin
AssignFile(fi, InputFile); Reset(fi);
AssignFile(fo, OutputFile); Rewrite(fo);
try
while not SeekEof(fi) do
begin
ReadLn(fi, n);
x[1] := n; x[2] := n + 1; x[3] := 2 * n + 1;
for i := 1 to 3 do
if x[i] mod 2 = 0 then
begin
x[i] := x[i] div 2;
Break;
end;
for i := 1 to 3 do
if x[i] mod 3 = 0 then
begin
x[i] := x[i] div 3;
Break;
end;
res := (x[1] mod m) * (x[2] mod m) * (x[3] mod m) mod m;
WriteLn(fo, res);
end;
finally
CloseFile(fi); CloseFile(fo);
end;
end.
Do mình muốn các bạn đọc đề bài và nghĩ cách giải, sau đó mới xem lời giải của mình và tiếp đó là xem code nên có đặt tại nhiều trang và mình cũng tin các bạn sẽ không muốn đọc đề mà lại có lời giải ngay.
Trang 4 sẽ nói về một số điều và mở rộng về công thức trong bài của chúng ta:



Phản hồi gần đây