Pagini recente » Cod sursa (job #2366981) | Cod sursa (job #2021286) | Cod sursa (job #2433434) | Cod sursa (job #1426621) | Cod sursa (job #494616)
Cod sursa(job #494616)
#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]];
}
for(int i=1;i<n;++i)
{
for(int j=1;j<MAX;++j)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
printf("%d\n" , a[n][1]);
}
int main()
{
read();
solve();
return 0;
}