Pagini recente » Cod sursa (job #919749) | Cod sursa (job #650846) | Cod sursa (job #348735) | Cod sursa (job #1358648) | Cod sursa (job #2465759)
#include <bits/stdc++.h>
#define ll long long
#define NMAX 1010
#define base 100
using namespace std;
ifstream f("indep.in");
ofstream g("indep.out");
ll pd[NMAX][NMAX], ceva[NMAX],n;
void aduna(ll a[NMAX], ll b[NMAX])
{
ll i,t = 0;
for(i = 1; i <= a[0] || i <= b[0] || t > 0 ; ++i)
{
a[i] = a[i] + b[i] + t;
t = a[i] / base;
a[i] %= base;
}
a[0] = i - 1;
}
int main()
{
f >> n;
ceva[0] = ceva[1] = 1;
for(int i = 1; i <= n; ++i)
{
int x;
f >> x;
for(int j = 1; j <= 1000; ++j)
aduna(pd[__gcd(x,j)], pd[j]);
aduna(pd[x] , ceva);
}
g << pd[1][pd[1][0]];
for(int i = pd[1][0] - 1; i >= 1; --i)
{
printf("%.3d",pd[1][i]);
}
f.close();
g.close();
return 0;
}