Даны два числа А и В(положительные). Составить алгоритм нахождения: а) наименьшего общего делителя; б) наименьшего общего кратного. напишите на паскале пожалуйста
Answers & Comments
BrightOne
НОД будем находить при помощи Эвклидового алгоритма, а НОК - по формуле: .
program nod_nok; var a, b, g: integer; l: real; function Gcd(a, b: integer): integer; var t: integer; begin while b <> 0 do begin t := b; b := a mod b; a := t; end; Gcd := a; end; function Lcm(a, b, gcd: integer): real; begin Lcm := Abs( a * b ) / gcd; end; begin write('a = '); readln(a); write('b = '); readln(b); g := Gcd(a, b); writeln('НОД: ', g); l := Lcm(a, b, g); writeln('НОК: ', l:1:0); end.
BrightOne
Второе var - переменные функции, абсолютно другая степь. Первое - программы, второе - именно функции Gcd().
D9dimaD9
мама, роди меня обратно, почему за 11 лет меня этому не учили, даже на 1 курсе мне не говорили про это, а в сессии это есть. спасибо тебе огромное за помощь. можешь в лс (в идеале в вк), если не сложно, объяснить как решать подобное?
Answers & Comments
program nod_nok;
var
a, b, g: integer;
l: real;
function Gcd(a, b: integer): integer;
var
t: integer;
begin
while b <> 0 do
begin
t := b;
b := a mod b;
a := t;
end;
Gcd := a;
end;
function Lcm(a, b, gcd: integer): real;
begin
Lcm := Abs( a * b ) / gcd;
end;
begin
write('a = ');
readln(a);
write('b = ');
readln(b);
g := Gcd(a, b);
writeln('НОД: ', g);
l := Lcm(a, b, g);
writeln('НОК: ', l:1:0);
end.