Роджер Вилко хочет добыть ключ из лабиринта, в который сам попасть не может, однако может запустить туда маленького робота. Робот знает команды:
Вверх (передвинуться на одну клетку вверх) Вниз (передвинуться на одну клетку вниз) Влево (передвинуться на одну клетку влево) Вправо (передвинуться на одну клетку вправо)
Команду, которую робот не может выполнить, он просто пропускает и переходит к следующей. У робота ограниченный объем памяти, поэтому Роджер может написать программу, состоящую только из четырех команд. Когда робот доходит до конца своей программы, он начинает ее заново. Когда робот оказывается в клетке, где лежит ключ, выполнение программы немедленно завершается.
Как Роджеру запрограммировать робота так, чтобы он попал из клетки S в клетку F, где лежит ключ?
var i, n, d, sd, s4d, kd, kn4d, k4d, kbd:integer;
begin
writeln ('Введите само число и число d');
read (n, d);
writeln ('Делители:');
I:=1;
sd:=0;
s4d:=0;
kd:=0;
kn4d:=0;
k4d:=0;
kbd:=0;
while I <=n do
begin
if n mod I = 0 then
begin
kd:=kd+1;
writeln (I);
sd:=sd+I;
if I > d then
kbd:=kbd+1;
if I mod 2 = 0 then
begin
s4d:=s4d+I;
k4d:=k4d+1;
end
else
kn4d:=kn4d+1;
end;
I:=I+1;
end;
writeln (' ');
writeln ('сумма делителей ', sd);
writeln ('сумма четных делителей ', s4d);
writeln ('количество делителей ', kd);
writeln ('количество нечетных делителей ', kn4d);
writeln ('количество четных делителей ', k4d);
writeln ('количество делителей болеше d ', kbd);
end.