Cod sursa(job #1004520)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 2 octombrie 2013 21:57:20
Problema Indep Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>

using namespace std;
const int Nmax = 505;

int N, v[ Nmax ],cmdc[ Nmax ],sols[ Nmax ];
int ans = 0;

int cmmdc (int a,int b)
{
    if(b)return cmmdc (b,a%b);
    return a;
}


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

    fin >> N;
    for(int i=1;i<=N;++i)
        fin>>v[i];
    cmdc[1] = v[1];
    for(int i=2;i<=N;++i)
    {
        cmdc[i] = cmmdc(cmdc[i-1],v[i]);
        sols[cmdc[i]] ++;
    }
    for(int i=1;i<=N;++i)
        ans += sols[i]*(sols[i]+1)/2;
    fout<<ans;
    return 0;
}