Cod sursa(job #2710791)
Utilizator | Patrick Kristian Ondreovici PatrickCplusplus | Data | 23 februarie 2021 08:41:24 |
---|---|---|---|
Problema | Indep | Scor | 25 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("indep.in");
ofstream fout("indep.out");
const int nmax = 505;
long long n, v[nmax], dp[nmax][1005];
int main(){
fin >> n;
for (int i = 1; i <= n; ++i){
fin >> v[i];
}
dp[n + 1][1] = 1;
for (int i = n; i >= 1; --i){
for (int j = 0; j <= 1000; ++j){
dp[i][j] = 1LL * dp[i + 1][j] + dp[i + 1][__gcd(1LL * j, v[i])];
}
}
fout << dp[1][0];
fin.close();
fout.close();
return 0;
}