Cod sursa(job #896807)

Utilizator crazzytudTudor Popa crazzytud Data 27 februarie 2013 17:25:48
Problema Indep Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
using namespace std;

ifstream in("indep.in");
ofstream out("indep.out");
int cmmdc(int a, int b)
{
    int r;
    while(b)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}

long long rez[501][1001];
int v[501];
int main()
{
    int n, i, j, k, max=0;
    in >> n;
    for(i=1; i<=n; i++)
    {
        in >> v[i];
        rez[1][v[i]] = 1;
        if(v[i] > max)
            max = v[i];
    }

    for(i=2;i<=n;i++)
    {
        for(j=1;j<=max;++j)
            rez[i][cmmdc(j,v[i])] += rez[i-1][j];
        for(j=0;j<=1001;j++)
            rez[i][j] += rez[i-1][j];
    }

    out<<rez[n][1]<<"\n";

}