Pagini recente » Cod sursa (job #2582478) | Cod sursa (job #3188613) | Cod sursa (job #645698) | Cod sursa (job #518472) | Cod sursa (job #2095026)
#include <fstream>
using namespace std;
ifstream in ("indep.in");
ofstream out ("indep.out");
const int N=1005;
const int komod=100000000;
int n;
long long v[30];
long long a[N][30];
int cmmdc(int a,int b)
{
int r;
while (b)
{
r=a%b;
a=b;
b=r;
}
return a;
}
void aduna(long long a[],long long b[])
{
int i=1,nr=0;
while (i<=a[0] || i<=b[0] || nr!=0)
{
nr+=a[i]+b[i];
a[i]=nr%komod;
i++;
nr/=komod;
}
a[0]=i-1;
}
int main()
{
int i,x,j;
in>>n;
for (i=1;i<=1000;i++)
a[i][0]=1;
v[0]=v[1]=1;
for (i=1;i<=n;i++)
{
in>>x;
for (j=1;j<1000;j++)
aduna(a[cmmdc(x,j)],a[j]);
aduna(a[x],v);
}
out<<a[1][a[1][0]];
for (i=a[1][0]-1;i>0;i--)
out<<a[1][i];
return 0;
}