function f(x: integer): integer; var L, M: integer; begin L := x - 12; M := x + 12; while L <> M do if L > M then L := L - M else M := M - L; f := M; end;
begin for x := 100 to 100000 do if f(x) = 1 then begin writeln(x); break; end;
end.
Что делает алгоритм из задания? Ищет наибольший общий множитель чисел M и L. То что ответ должен быть 1, означает, что ищем взаимно простые числа
ответ 101
palmhold578
16.10.2022
# Код на ruby 2.2.3p173 def zadanie(line, time) line = line.gsub(/[^MD]/, "") time.times { |i| k = 0 while k < line.size - 1 do if line[k..k + 1] == "MD" line[k], line[k + 1] = line[k + 1], line[k] k+=1 end k+=1 end p [i+1,line] } return line end # # Примеры применения # p zadanie("MDDDMMDMDDDDDM", 10) p zadanie("MMDMMMDDDMDDDMD", 10)
var
x: integer;
function f(x: integer): integer;
var
L, M: integer;
begin
L := x - 12;
M := x + 12;
while L <> M do
if L > M then
L := L - M
else M := M - L;
f := M;
end;
begin
for x := 100 to 100000 do
if f(x) = 1 then begin
writeln(x);
break;
end;
end.
Что делает алгоритм из задания? Ищет наибольший общий множитель чисел M и L. То что ответ должен быть 1, означает, что ищем взаимно простые числа
ответ 101