Pers.narod.ru. Алгоритмы. Наименьшие числа, не имеющие общих делителей |
Даны натуральные числа m, n.
Найти наименьшие m1, n1, не имеющие общих делителей и такие, что m1/n1 = m/n.
uses crt;
var m,n,m1,n1,d:word;
Function NOD ( X,Y : Word ) : Word ;
(* Алгоритм Евклида - ищем наибольший общий делитель *)
Begin
While ( X <> 0 ) and ( Y <> 0 ) Do
If X > Y Then X := X mod Y
Else Y := Y mod X ;
NOD := X + Y
End;
begin
clrscr;
repeat
write ('Введите натуральные M,N:');
{$I-}
read (m,n);
{$I+}
if (n<2) or (m<2) then writeln ('Числа должны быть больше 1!')
until (m>1) and (n>1);
clrscr;
WriteLn (' M=',M,' N=',N);
d:=Nod(m,n);
If d<>1 Then Begin
m1:=m div d; n1:=n div d;
End
Else Begin
m1:=m; n1:=n;
End;
WriteLn ('M1=',M1,' N1=',N1);
Reset (input); Readln;
end.
|
|