Pagini recente » Cod sursa (job #503003) | Cod sursa (job #2401714) | Cod sursa (job #2200769) | Cod sursa (job #418769) | Cod sursa (job #123591)
Cod sursa(job #123591)
const m=1000;
type nr_mare=array[0..100] of byte;
var x:array[1..501,1..1010] of nr_mare;
v:array[1..501] of longint;
n,i,j,k,c:longint;
unu:nr_mare;
function cmmdc(a,b:Longint):longint;
var r:longint;
begin
r:=a mod b;
while r<>0 do
begin
a:=b;
b:=r;
r:=a mod b;
end;
cmmdc:=b;
end;
procedure aduna(var a,b,c:nr_mare);
var i:longint;
begin
c[0]:=a[0];
if b[0]>c[0] then
c[0]:=b[0];
for i:=1 to c[0] do
c[i]:=a[i]+b[i];
for i:=1 to c[0] do
begin
c[i+1]:=c[i+1]+c[i] div 10;
c[i]:=c[i] mod 10;
end;
if c[c[0]+1]>0 then
inc(c[0]);
end;
begin
assign(input,'indep.in');reset(input);
assign(output,'indep.out');rewrite(output);
readln(n);
for i:=1 to n do
readln(v[i]);
x[1,v[1],0]:=1;x[1,v[1],1]:=1;
unu[0]:=1;unu[1]:=1;
for i:=2 to n do
begin
aduna(x[i,v[i]],unu,x[i,v[i]]);
for j:=1 to m do
begin
aduna(x[i,j],x[i-1,j],x[i,j]);
c:=cmmdc(v[i],j);
aduna(x[i,c],x[i-1,j],x[i,c]);
end;
end;
for i:=x[n,1][0] downto 1 do
write(x[n,1][i]);
writeln;
close(input);close(output);
end.