1) var i, d, c: integer; begin c:=0; readln(d); for i:=1 to d do If (i mod 3 = 0) and (i mod 2<>0) and (d mod i = 0) then c:=c+i; writeln(c); end.
2) var i, d, c: integer; begin i:=0; c:=0; readln(d); while i<=d do If (i mod 3 = 0) and (i mod 2<>0) and (d mod i = 0) then begin c:=c+i; i:=i+1; end; writeln(c); end.
3) var i, d, c: integer; begin i:=0; c:=0; readln(d); repeat If (i mod 3 = 0) and (i mod 2<>0) and (d mod i = 0) then begin c:=c+i; i:=i+1; end; until i<d; writeln(c); end.
Если лень перебирать вручную, можно воспользоваться программой
var k,l,r,x,f:integer; begin f := 3001; l := 0; r := 65534; x := (l + r) div 2; k := 1; while (x <> f) and (l < r) do begin writeln(k,' ',l,' ',r,' ',x); k := k + 1; if f < x then r := x - 1 else l := x + 1; x := (l + r) div 2 end; writeln(k,' ',l,' ',r,' ',x); end.
Пусть исходные координаты чертежника (x;y). Смоделируем алгоритм: 0) (x;y) 1) (x-1;y-2) 2) n раз делается одно и то же: первая координата изменяется на a, затем из нее вычитается 1, вторая координата изменяется на b, затем вычитается 2. В результате координаты равны: (x-1+n*(a-1); y-2+n*(b-2)) 3) (x-1+n*(a-1)-20; y-2+n*(b-2)-12) Концом работы программы является попадание в стартовую позицию. То есть x-1+n*(a-1)-20=x => n*(a-1)=21 y-2+n*(b-2)-12=y => n*(b-2)=14 Тогда n нужно искать среди делителей чисел 21 и 14. Точнее ответом будет НОД(21, 14)=7.
var
i, d, c: integer;
begin
c:=0;
readln(d);
for i:=1 to d do
If (i mod 3 = 0) and (i mod 2<>0) and (d mod i = 0) then
c:=c+i;
writeln(c);
end.
2)
var
i, d, c: integer;
begin
i:=0;
c:=0;
readln(d);
while i<=d do
If (i mod 3 = 0) and (i mod 2<>0) and (d mod i = 0) then begin
c:=c+i;
i:=i+1;
end;
writeln(c);
end.
3)
var i, d, c: integer;
begin
i:=0;
c:=0;
readln(d);
repeat
If (i mod 3 = 0) and (i mod 2<>0) and (d mod i = 0) then begin
c:=c+i;
i:=i+1;
end;
until i<d;
writeln(c);
end.