Pagini recente » Cod sursa (job #3252658) | Cod sursa (job #935999) | Cod sursa (job #2503125) | Cod sursa (job #396203) | Cod sursa (job #495765)
Cod sursa(job #495765)
#include<fstream>
using namespace std;
ifstream in("indep.in");
ofstream out("indep.out");
const int C=200;
int v[539],n,a[2][1010][C];
void read()
{
in>>n;
for(int i=1;i<=n;i++)
in>>v[i];
}
int cmmdc(int a ,int b)
{
int r;
while(b)
{
r=a%b;
a=b;
b=r;
}
return a;
}
void add(int A[], int B[])
{
int tr=0,i;
for( i=1;i<=A[0] || i<=B[0] || tr ;tr/=10,++i)
{
tr=A[i]+B[i]+tr;
A[i]=tr%10;
}
A[0]=i-1;
}
void solve()
{
int d,unu[C]={0};
unu[0]=unu[1]=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=1000;j++)
memset(a[i%2][j],0,C*sizeof(int));
for(int j=1;j<=1000;j++)
{
d=cmmdc(v[i],j);
add(a[i%2][d],a[1-i%2][j]);
}
for(int j=1;j<=1000;j++)
add(a[i%2][j],a[1-i%2][j]);
add(a[i%2][v[i]],unu);
}
for(int i=a[n%2][1][0];i>=1;i--)
out<<a[n%2][1][i];
}
int main()
{
read();
solve();
return 0;
}