Cod sursa(job #2092484)

Utilizator ContDeRacistAliniateEBlat ContDeRacist Data 21 decembrie 2017 19:23:08
Problema Indep Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>

using namespace std;

ifstream cin("indep.in");
ofstream cout("indep.out");

const int N = 510, MAX = 1001;

int v[N];
long long d[N][MAX];

int cmmdc(int a, int b) {
    int rest = 0;
    while (b != 0) {
        rest = a % b;
        a = b;
        b = rest;
    }
    return a;
}

int main()
{
    int n;
    cin >> n;
    for (int i = 1 ; i <= n; ++i) {
        cin >> v[i];
    }
    d[1][v[1]] = 1;
    for (int i = 2; i <= n; ++i) {
        for (int j = 1; j < MAX; ++j) {
            d[i][j] = d[i - 1][j];
        }
        for (int j = 1; j < MAX; ++j) {
            d[i][cmmdc(v[i], j)] += d[i - 1][j];
        }
        d[i][v[i]]++;
    }
    cout << d[n][1];
    return 0;
}