Pagini recente » Cod sursa (job #1834009) | Cod sursa (job #2160268) | Cod sursa (job #1321046) | Cod sursa (job #1642871) | Cod sursa (job #494617)
Cod sursa(job #494617)
#include<cstdio>
int MAX = -1 , n , d, a[1000][1000] , v[1001];
int cmmdc(int a , int b)
{
int r;
while(b)
{
r=a%b;
a=b;
b=r;
}
return a;
}
void read()
{
freopen ( "indep.in" , "r" , stdin );
freopen ( "indep.out" , "w" , stdout );
scanf("%d" , &n);
for (int i=1 ; i<=n ; ++i )
{
scanf ( "%d" , &v[i] );
if (v[i]>MAX) MAX = v[i];
}
}
void solve()
{
a[1][v[1]] = 1;
for (int i=2 ; i<=n ; ++i )
{
for (int j=1 ; j<=MAX ; ++j )
{
if (a[i-1][j] != 0 )
{
d = cmmdc ( j, v[i] );
a[i][d] += a[i-1][j];
}
a[i][j]+=a[i-1][j];
}
++a[i][v[i]];
}
printf("%d\n" , a[n][1]);
}
int main()
{
read();
solve();
return 0;
}