Var S,K,A:integer;
Begin
S:=0;
K:=0;
A:=100;
Repeat
S:=S+A;
K:=K+1;
A:=A+10;
Until A>500;
WriteLn('SR = ',K*S);
End.
Судя по программе алгоритм линейный
Uses graphabc;
procedure vvod(var a,b: integer);
begin
writeln('Введите ширину отступа');
read(a);
writeln('Введите ');
read(b);
end;
procedure squares(r,nachdl: integer);
var x1,y1,x2,y2: integer;
begin
y1:=0;
x1:=0;
x2:=nachdl;
y2:=nachdl;
while x2<windowheight do
begin
drawrectangle(x1,y1,x2,y2);
x2:=x2+r;
y2:=y2+r;
nachdl:=nachdl+r;
end;
end;
var
r,nachdl: integer;
begin
vvod(r,nachdl);
squares(r,nachdl);
<span>end.</span>
Разделить монеты на пополам, взвесить, какая сторона легче ту опять разделить напополам и взвесить и повторять пока не найдете фальшивую монету
Program ghjkligohqfaqruyfgeyfqgwqc;
var a, b, c, i :integer;
BEGIN
writeln (' Введите два числа, первое должно быть меньше и еще число делитель');
readln (a, b, c);
for i:=a to b do
begin
if (a*a) mod c=0 then
writeln (a*a);
a:=a+1;
end;
end.