Pagini recente » Cod sursa (job #2524075) | Cod sursa (job #1323931) | Cod sursa (job #2946718) | Cod sursa (job #1585797)
#include <stdio.h>
const int A=1010;
const int B=30;
int nr;
int v[A][B];
const int baza = 100000000;
int unu[B];
int cmmdc(int a,int b) {
int r;
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
void adn(int v[B],int b[B])
{
int i=1,t=0;
for(; i<=v[0] || i<=b[0] || t!=0; ++i,t=t/baza)
{
t+=v[i]+b[i];
v[i]=t%baza;
}
v[0]=i-1;
}
void scr(int v[30])
{
printf("%d",v[v[0]]);
for(int i=v[0]-1;i>0;--i)
printf("%.8d",v[i]);
}
int main() {
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
scanf("%d",&nr);
int x;
unu[0]=1;
unu[1]=1;
for(int i=1;i<1001;++i)
v[i][0] = 1;
for(int i=0;i<nr;++i) {
scanf("%d",&x);
for(int j=1;j<1001;++j)
adn(v[cmmdc(x,j)],v[j]);
adn(v[x],unu);
}
scr(v[1]);
return 0;
}