Pagini recente » Cod sursa (job #1360481) | Cod sursa (job #2364399) | Cod sursa (job #2848474) | Cod sursa (job #2629913) | Cod sursa (job #892802)
Cod sursa(job #892802)
# include <fstream>
# include <cstring>
# include <algorithm>
# include <vector>
using namespace std;
ifstream f("indep.in");
ofstream g("indep.out");
unsigned long long dp[ 1005 ];
int A[ 505 ];
int N;
unsigned long long cmmdc( unsigned long long X, unsigned long long Y )
{
if ( X < Y )
return cmmdc( X, Y - X );
else
if ( X > Y )
return cmmdc( X - Y, Y );
else
return X;
}
void citire()
{
int i;
f >> N;
for ( i = 1 ; i <= N ; i++ )
f >> A[ i ];
}
void rezolva()
{
int i, j;
unsigned long long nr;
//for ( i = 1 ; i <= 1000 ; i++ )
//dp[ 1 ][ i ] = 1;
for ( i = 1 ; i <= N ; i++ )
{
for ( j = 1 ; j <= 1000 ; j++ )
{
nr = cmmdc( A[ i ], j );
dp[ nr ] += dp[ j ];
}
dp[ A[ i ] ] ++;
}
}
void afisare()
{
int i, j;
/* for ( i = 1 ; i <= 10 ; i++ )
{
for ( j = 1 ; j <= N ; j++ )
g << dp[ i ][ j ] << " ";
g << "\n";
}
*/
g << dp[ 1 ];
}
int main()
{
citire();
rezolva();
afisare();
return 0;
}