Pagini recente » Cod sursa (job #3354049) | Cod sursa (job #3353686) | Cod sursa (job #3352934) | Cod sursa (job #3311082) | Cod sursa (job #3340142)
#include <fstream>
using namespace std;
const int VMIN = 1;
const int VMAX = 1000;
const int N = 500;
long long nrs[2][VMAX+1];
int cmmdc(int a, int b)
{
while (b != 0)
{
int r = a % b;
a = b;
b = r;
}
return a;
}
int main()
{
ifstream in("indep.in");
ofstream out("indep.out");
int n;
in >> n;
for (int i = 1; i <= n; i++)
{
int x_i;
in >> x_i;
int lin_c = i % 2;
int lin_a = 1 - lin_c;
for (int val = VMIN; val <= VMAX; val++)
{
nrs[lin_c][val] = nrs[lin_a][val];
}
for (int val = VMIN; val <= VMAX; val++)
{
int d = cmmdc(x_i, val);
nrs[lin_c][d] += nrs[lin_a][val];
}
nrs[lin_c][x_i]++;
}
out << nrs[n%2][1] << "\n";
in.close();
out.close();
return 0;
}