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, означает, что ищем взаимно простые числа
Программа для случая, когда в строке только "0", "1" и пробелы (т.е. проверки корректности ввода нет): procedure TForm1.Button1Click(Sender: TObject); var s:string; i,k,max:integer; begin if combobox1.Text<>'' then begin s:=combobox1.Text; combobox1.Items.Insert(0,s); s:=s+' '; while pos(' ',s)>0 do delete(s,pos(' ',s),1); k:=0; max:=0; for i:=1 to length(s) do if s[i]<>' ' then k:=k+1 else begin if k>max then max:=k; k:=0; end; label1.Caption:='Количество символов в самой длинной группе: '+inttostr(max); end; end;
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
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
i,k,max:integer;
begin
if combobox1.Text<>'' then
begin
s:=combobox1.Text;
combobox1.Items.Insert(0,s);
s:=s+' ';
while pos(' ',s)>0 do delete(s,pos(' ',s),1);
k:=0; max:=0;
for i:=1 to length(s) do
if s[i]<>' '
then k:=k+1
else begin
if k>max then max:=k;
k:=0;
end;
label1.Caption:='Количество символов в самой длинной группе: '+inttostr(max);
end;
end;