// НОД(a,b)*НОК(a,b)=a*b
procedure nod(x,y: integer; var n: integer);
begin
repeat
if x>y then x:=x mod y
else y:=y mod x;
until (x=0)or(y=0);
n:=x+y;
end;
var a,b,c,d,e,n: integer;
begin
readln(a,b,c,d);
nod(a,b,n);
e:=a*b div n;
nod(c,e,n);
e:=c*e div n;
nod(d,e,n);
Writeln('НОК = ',d*e div n);
end.
Пример:
36 54 18 15
<span>НОК = 540</span>
1) Поднять перо.
2)Сдвинь на вектор (-4;-1);
3)Опустить перо;
4)Сдвинь на вектор(1;1);
5)Сдвинь на вектор(0:-3);
6)Поднять перо.
7)Сдвинь на вектор(2;2);
8)Опусти перо.
9)Сдвинь на вектор(-1;0);
10)Сдвинь на вектор(0;1);
11)Сдвинь на вектор(1;0);
12)Сдвинь на вектор(0;-3)
13)Сдвинь на вектор(-1;0);
14)Поднять перо
15)Сдвинь на вектор(2;2);
16)Опусти перо.
17)Сдвинь на вектор(-1;0);
18)Сдвинь на вектор(0;1);
19)Сдвинь на вектор(1;0);
20)Сдвинь на вектор(0;-3)
21)Сдвинь на вектор(-1;0);
22)Поднять перо
23)Сдвинь на вектор(2;2);
24)Опусти перо.
25)Сдвинь на вектор(-1;0);
26)Сдвинь на вектор(0;1);
27)Сдвинь на вектор(1;0);
28)Сдвинь на вектор(0;-3)
29)Сдвинь на вектор(-1;0);
30)Поднять перо
В итоге должно получиться 1999. Вроде так.
5
Я переворачиваем в зеркальном
Н нормальная
Д вверх ногами
Е переворачиваем вверх и в зеркальном
К нормальная
С в зеркальном