Cod sursa(job #46100)

Utilizator andrewgPestele cel Mare andrewg Data 2 aprilie 2007 12:30:32
Problema Indep Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.94 kb
const maxn = 501;
      maxv = 1001;

var f:text;
    n,i,j,max:longint;
    c:array[1..maxn,1..maxv]of longint;
    a:array[1..maxn]of longint;

procedure readdata;
begin
   assign(f,'indep.in');
   reset(f);
   readln(f,n);
   for i:=1 to n do readln(f,a[i]);
   close(f);
end;

function cmmdc(a,b:integer):integer;
var c:integer;
begin
   repeat
      while b<>0 do
      begin
         c:=a;
         a:=b;
         b:=c mod b;
      end;
   until b=0;
   cmmdc:=a;
end;

procedure solve;
begin
   c[1,a[1]]:=1;
   max:=a[1];
   for i:=2 to n do
   begin
      for j:=1 to max do
      begin
         c[i,j]:=c[i-1,j];
         inc(c[i,cmmdc(j,a[i])],c[i-1,j]);
      end;
      inc(c[i,a[i]]);
      if a[i]>max then max:=a[i];
   end;
end;

procedure writedata;
begin
   assign(f,'indep.out');
   rewrite(f);
   writeln(f,c[n,1]);
   close(f);
end;

begin
   readdata;
   solve;
   writedata;
end.