Pagini recente » Cod sursa (job #1919885) | Cod sursa (job #2774751) | Cod sursa (job #1885208) | Cod sursa (job #1044385) | Cod sursa (job #1239489)
// fara numere mari
#include<cstdio>
using namespace std;
FILE *fin = fopen( "indep.in" , "r" ), *fout = fopen( "indep.out" , "w" );
const int mxmx = 1000;
const int nmax = 500;
short int v[ nmax + 1 ];
long long d[ 2 ][ mxmx + 1];
int gcd( int a, int b ) {
if ( b == 0 ) {
return a;
} else {
return gcd( b, a % b );
}
}
int main() {
int n, mx, ind, r;
fscanf( fin, "%d", &n );
mx = 0;
for( int i = 1; i <= n; ++ i ) {
fscanf( fin, "%hd", &v[ i ] );
mx = mx < v[ i ] ? v[ i ] : mx;
}
ind = 1;
d[ 0 ][ 0 ] = 1;
for( int i = 1; i <= n; ++ i, ind = 1 - ind ) {
for( int j = 0; j <= mx; ++ j ) {
d[ ind ][ j ] = d[ 1 - ind ][ j ];
}
for( int j = 0; j <= mx; ++ j ) {
r = gcd( (int)v[ i ], j );
d[ ind ][ r ] += d[ 1 - ind ][ j ];
}
}
fprintf( fout, "%lld\n", d[ 1 - ind ][ 1 ] );
fclose( fin );
fclose( fout );
return 0;
}