Pagini recente » Cod sursa (job #2975464) | Statistici ionpopescu (ionpopescu1234) | Cod sursa (job #1332212) | Cod sursa (job #1939897) | Cod sursa (job #2465766)
#include <bits/stdc++.h>
#define ll int
#define NMAX 1010
#define base 1000
using namespace std;
ifstream f("indep.in");
ofstream g("indep.out");
int pd[NMAX][109], ceva[109],n;
void aduna(ll a[109], ll b[109])
{
int 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;
}