Cod sursa(job #639653)

Utilizator alutzuAlexandru Stoica alutzu Data 23 noiembrie 2011 18:45:32
Problema Indep Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<cstdio>

long long a[501][1001] ;
int x [ 501 ] ; 
int n , i , j , d ;

long long cmmdc ( long long a , long long b ) 
{
	long long r ;
	while ( b ) 
	{
		r = a % b; 
		a = b ;
		b = r ;
	}
	return a ;
}

int main ( )
{
	
	freopen ( "indep.in", "r", stdin ) ;
	freopen ( "indep.out", "w", stdout ) ;
	
	int n , i , j ;
	long long d ;
	
	scanf ( "%d" , &n ) ;
	for ( i = 1 ; i <= n;  ++ i )
		scanf ( "%d", &x[i] ) ;
	
	a[0][0]=1;
	
	for ( i = 1 ; i <= n ; ++ i )
	{
		for ( j = 0 ; j <= 1000 ; ++ j )
		{
			 d = cmmdc ( j , x[i] ) ;
			 a[i][d] += a[i-1][j] ;
		}
		for ( j = 0 ; j <= 1000; ++ j )
			a[i][j] += a[i-1][j] ;
	}
	printf ( "%lld" , a[n][1] ) ;
	
	
	return 0 ;
}