Pagini recente » Cod sursa (job #1215182) | Cod sursa (job #2867326) | Cod sursa (job #2733582) | Cod sursa (job #463453) | Cod sursa (job #1234500)
#include <fstream>
using namespace std;
const int NMAX = 505, GCDMAX = 1000;
int N, a[NMAX], dp[NMAX][GCDMAX];
ifstream fin("indep.in");
ofstream fout("indep.out");
int Cmmdc(const int a, const int b) {
if (!b)
return a;
return Cmmdc(b, a % b);
}
int main() {
fin >> N;
for (int i = 1; i <= N; ++i) {
fin >> a[i];
dp[i][a[i]] = 1;
for (int j = 1; j < GCDMAX; ++j) {
dp[i][Cmmdc(j, a[i])] += dp[i - 1][j];
dp[i][j] += dp[i - 1][j];
}
}
fout << dp[N][1] << "\n";
return 0;
}