Pagini recente » Cod sursa (job #1969233) | Cod sursa (job #872432) | Cod sursa (job #1798227) | Cod sursa (job #1547521) | Cod sursa (job #1088208)
#include<fstream>
using namespace std;
ifstream f("indep.in"); ofstream g("indrep.out");
int unu[501],v[501],C[1002][501];
int cmmdc(int a, int b)
{ int r;
while(b) r=a%b, a=b, b=r;
return a;
}
void add(int A[], int B[])
{ int i,t=0;
if(!A[0] && !B[0]) return ;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
A[i]=(t+=A[i]+B[i])%10;
A[0]=i-1;
}
int main()
{ int n,i,j,t;
f>>n;
unu[0]=unu[1]=1;
for(i=1;i<=n;++i) f>>v[i];
for(i=1; i<=n; ++i)
{ for (j=1; j<=1000; j++) {t=cmmdc(v[i],j); add(C[t],C[j]);}
add(C[v[i]],unu);
}
if(C[1][0]) for (i=C[1][0]; i; i--) g<<C[1][i]; else g<<"0";
g<<'\n'; g.close(); return 0;
}