Pagini recente » Cod sursa (job #423669) | Cod sursa (job #1001144) | Monitorul de evaluare | Istoria paginii utilizator/rembrand | Cod sursa (job #2017515)
#include <stdio.h>
#include <stdlib.h>
#define C 1000
int rez[501][C+1],aux[C+1],v[501];
void add(int a[],int b[])
{
int i,o;
o=0;
for(i=C; i>0; i--)
{
a[i]+=b[i]+o;
o=a[i]/10;
a[i]%=10;
}
}
int main()
{
int n,i,nr,j,x,y,r;
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
scanf("%d",&n);
for(i=1; i<=n; i++)
scanf("%d",&v[i]);
for(i=2; i<=n; i++)
{
nr=0;
for(j=1; j<i; j++)
{
x=v[i];
y=v[j];
while(y)
{
r=x%y;
x=y;
y=r;
}
if(x==1) nr++;
add(rez[i],rez[j]);
}
j=C;
while(nr)
{
aux[j--]=nr%10;
nr/=10;
}
add(rez[i],aux);
for(j=1; j<=C; j++) aux[j]=0;
}
for(i=1; i<=n; i++)
add(aux,rez[i]);
i=1;
while(!aux[i]) i++;
if(i>C) printf("0\n");
else while(i<=C) printf("%d",aux[i++]);
return 0;
}