Cod sursa(job #673873)

Utilizator andreifirstCioara Andrei Ioan andreifirst Data 5 februarie 2012 00:38:00
Problema Economie Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.83 kb
var v:array [0..100000] of longint;
    rez:array [0.. 100000] of longint;
    i, j, d, aux, r, n:longint;
    f, g:text;

function gcd (x, y:longint):longint;
  begin
  if x mod y = 0 then gcd:=y else gcd:=gcd(y, x mod y);
  end;

begin
assign (f, 'economie.in'); reset (f);
assign (g, 'economie.out'); rewrite (g);

read (f, n);
for i := 1 to n do read (f, v[i]);

for i := 1 to n-1 do for j := i to n do
  if v[i]>v[j] then begin aux:=v[i]; v[i]:=v[j]; v[j]:=aux; end;

i:= 1; d:=v[1];
r:=0;

j:=1;
while i <= n do
  begin
  inc (r); rez[r]:=v[i];

  while j<=n do
    begin
    if v[j] mod d = 0 then v[j]:=0;
    inc (j);
    end;

  while (v[i]=0) and (i<=n) do inc (i);
  j:=i;

  if j <=n then d:=gcd(d, v[j]);
  end;

writeln (g, r);
for i := 1 to r do writeln (g, rez[i]);

close (f); close (g);
end.