var
i,n:integer;
function nod(x,y:Integer):Integer;
begin
if x = 0 then
nod:=y
else
nod:=nod(y mod x,x)
end;
begin
readln(n);
writeln('------------ ',n);
for i:=n downto 1 do
if nod(n,i)=1 then
write(i,' ')
end.
Вариант 2
uses crt;
var n,i:word;
function NOD(m,n:integer):integer;{нахождение наибольшего общего делителя}
begin
while m<>n do
if m>n then m:=m-n else n:=n-m;
NOD:=m;
end;
begin
clrscr;
write('n=');readln(n);
for i:=2 to n-1 do
if NOD(n,i)=1 then write(i,' ');{если НОД=1, взаимно простые}
readln
end.
Вариант 3
uses crt;
var n,i,m,k:word;
begin
clrscr;
write('n=');readln(n);
for i:=2 to n-1 do
begin
m:=n;k:=i;
while k<>m do
if k>m then k:=k-m else m:=m-k;
if (k=1)or(m=1) then write(i,' ');
end;
readln
end.
Вариант 4
uses crt;
var n,i,m,k:word;
begin
clrscr;
write('n=');readln(n);
for i:=2 to n-1 do
begin
m:=n;k:=i;
while k<>m do
if k>m then k:=k-m else m:=m-k;
if (k=1)or(m=1) then write(i,' ');
end;
readln
end.
Вариант 5
var
n,i,j,f:integer;
begin
write('n=');
readln(n);
for i:=2 to n-1 do
begin
f:=0;
for j:=2 to n div 2 do
if (n mod j=0)and( i mod j=0) then f:=1;
if f=0 then write(i,' ');
end;
end.