Cod sursa(job #1375099)

Utilizator Athena99Anghel Anca Athena99 Data 5 martie 2015 12:13:31
Problema Indep Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>

using namespace std;

ifstream fin("indep.in");
ofstream fout("indep.out");

const int nmax= 500;
const int vmax= 1000;

int v[nmax+1], d[nmax+1][vmax+1];

int gcd( int x, int y ) {
    if ( y==0 )
        return x;
    return gcd( y, x%y );
}

int main(  ) {
    int n;
    fin>>n;
    for ( int i= 1; i<=n; ++i ) {
        fin>>v[i];
    }

    for ( int i= 1; i<=n; ++i ) {
        ++d[i][v[i]];
        for ( int j= 1; j<=vmax; ++j ) {
            int cmmdc= gcd(v[i+1], j);
            d[i+1][j]= d[i+1][j]+d[i][j];
            d[i+1][cmmdc]= d[i+1][cmmdc]+d[i][j];
        }
    }

    fout<<d[n][1]<<"\n";

    return 0;
}