Pagini recente » Cod sursa (job #2004445) | Cod sursa (job #1126075) | Cod sursa (job #1198900) | Cod sursa (job #1282164) | Cod sursa (job #96633)
Cod sursa(job #96633)
#include <cstdio>
#include <cstring>
#define Nmax 1024
#define ll long long
int n, m = 1000;
ll d[2][Nmax];
int sir[Nmax];
int gcd(int a, int b)
{
if (b == 0)
return a;
else
return gcd(b, a % b);
}
void citire()
{
int i;
scanf("%d\n", &n);
for (i = 1; i <= n; ++i)
scanf("%d\n", &sir[i]);
}
void solve()
{
int i, j, step = 0;
for (j = 1; j <= n + 1; ++j, step = !step)
{
memcpy(d[!step], d[step], sizeof(d[step]));
for (i = 1; i <= m; ++i)
d[!step][gcd(sir[j], i)] += d[step][i];
++d[!step][sir[j]];
}
printf("%lld\n", d[!step][1]);
}
int main()
{
freopen("indep.in", "r", stdin);
freopen("indep.out", "w", stdout);
citire();
solve();
return 0;
}