Pagini recente » Cod sursa (job #2121865) | Cod sursa (job #560709) | Cod sursa (job #2559490) | Cod sursa (job #760420) | Cod sursa (job #588204)
Cod sursa(job #588204)
#include <stdio.h>
int n,v[501],a[1002][501],aux[2];
int cmmdc(int x,int y)
{
int r;
while(y)
{
r=x%y;
x=y;
y=r;
}
return x;
}
void suma(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 i,j,t,n;
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
scanf("%d",&n);
for (i=1; i<=n; i++)
scanf("%d",&v[i]);
aux[0]=1; aux[1]=1;
for (i=1; i<=n; i++)
{
for (j=1; j<=1000; j++)
{
t=cmmdc(v[i],j);
suma(a[t],a[j]);
}
suma(a[v[i]],aux);
}
if (!a[1][0])
{
printf("0\n");
return 0;
}
for (i=a[1][0]; i>=1; i--)
printf("%d",a[1][i]);
return 0;
}