Pagini recente » Cod sursa (job #2390613) | Cod sursa (job #3266382) | Cod sursa (job #2929015) | Cod sursa (job #1193201) | Cod sursa (job #502185)
Cod sursa(job #502185)
#include<cstdio>
const int N=501;
int s[N][2*N];
int x[N];
int lim=0;
void fisiere()
{
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
}
int cmmdc(int a,int b)
{
int r;
while (b)
{
r=a%b;
a=b;
b=r;
}
return a;
}
void citeste()
{
fisiere();
int i;
scanf("%d",&x[0]);
for (i=1;i<=x[0];++i)
{
scanf("%d",&x[i]);
if (lim<x[i]) lim=x[i];
}
}
void rezolva()
{
int i,j,d,c;
s[1][x[1]]=1;
for (i=2;i<=x[0];++i)
{
for (j=1;j<=lim;++j)
{
d=cmmdc(j,x[i]);
s[i][d]+=s[i-1][j];
}
s[i][x[i]]++;
for (j=1;j<=lim;++j)
s[i][j]+=s[i-1][j];
}
printf ("%d",s[x[0]][1]);
}
int main()
{
citeste();
rezolva();
return 0;
}