Comment trouver GCD s'il y a plus de 2 valeurs dans le tableau?Plus grand commun diviseur Pascal (plus de 2 valeurs)
Je pensais trouver la plus petite valeur, et essayer de diviser chaque élément de la matrice par elle et si mod n'est pas 0 alors enlever 1 de cette valeur et recommencer.
Mais je ne reçois que 0 alors c'est la mauvaise façon, des idées?
program GreatestCommonDivisor;
type mas = array[1..100] of integer;
var n : integer;
M : mas;
Rf : text;
procedure Skaityti;
var i : integer;
Df : text;
begin
Assign(Df,'duom1.txt');
Reset(Df);
Readln(Df,n);
for i := 1 to n do
Read(Df,M[i]);
Close(Df);
end;
function GCD(M : array of integer): integer;
var i,min : integer;
begin
min := M[1];
for i := 1 to n do
begin
if min > M[i] then
min := M[i];
end;
i := 1;
repeat
if M[i] mod min = 0 then
GCD := min
else
begin
min := min - 1 ;
i := 0;
continue;
end;
i := i + 1;
until i = n;
end;
var min,i : integer;
begin
Skaityti;
Assign(Rf,'rez.txt');
for i := 1 to n do
Writeln(Rf,GCD(M),' ',min);
Close(Rf);
end.
Montrez votre code, il y a quelque chose obvously wong si vous ne recevez pas au moins 1 GCD. –
L'a écrit à la question – Vilmis
D'où vient «M»? – Lagerbaer