配列に2つ以上の値がある場合、GCDを見つける方法は?最大公約数パスカル(2つ以上の値)
私は最小の値を見つけようと考えていました。そして、それによって配列からすべての要素を分けてみてください。そして、modが0でなければ、その値から1を取り除き、再び始めてください。
しかし、私はそれが間違った方法、任意のアイデアだから0を得る?
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.
はあなたのコードを表示するあなたは最大公約数として、少なくとも1を取得しない場合は、何かウォンはobvouslyあります。 –
質問に編集しました – Vilmis
「M」はどこから来たの? – Lagerbaer