Pagini recente » Cod sursa (job #2715734) | Cod sursa (job #2253355) | Cod sursa (job #2261989) | Cod sursa (job #2301504) | Cod sursa (job #494610)
Cod sursa(job #494610)
#include<cstdio>
int MAX,n,a[1<<9];
long long d[1<<9][1<<10];
void read()
{
freopen("indep.in","r",stdin);
freopen("indep.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(a[i]>MAX)
MAX=a[i];
}
}
int cmmdc(int x,int y)
{
int r=x%y;
while(r)
{
x=y;
y=r;
r=x%y;
}
return y;
}
void solve()
{
for(int i=1;i<n;i++)
{
d[i][a[i]]++;
for(int j=1;j<=MAX;j++)
if(d[i][j])
{
d[i+1][j]+=d[i][j];
d[i+1][cmmdc(a[i+1],j)]+=d[i][j];
}
}
d[n][a[n]]++;
printf("%lld",d[n][1]);
}
int main()
{
read();
solve();
return 0;
}