Pagini recente » Cod sursa (job #926757) | Cod sursa (job #2824678) | Cod sursa (job #2532145) | Cod sursa (job #376237) | Cod sursa (job #1695473)
#include <cstdio>
using namespace std;
int n, mic[5], x,j, y, i , ans[1005][505] ;
int cmmdc(int x, int y)
{
int r=x%y;
while(r) x=y, y=r, r=x%y;
return y;
}
void add(int a[], int b[])
{
int t=0, i;
for(i=1; i<=a[0] || i<=b[0] || t; ++i)
{
t+=a[i]+b[i];
a[i]=t%10;
t/=10;
}
a[0]=i-1;
}
int main()
{
freopen("indep.in", "r", stdin);
freopen("indep.out", "w", stdout);
scanf("%d", &n);
mic[0]=mic[1]=1;
for(i=1; i<=1000; ++i) ans[i][0]=1;
for(i=1; i<=n; ++i)
{
scanf("%d", &x);
for(j=1; j<=1000; ++j)
{
y=cmmdc(x, j);
add( ans[y], ans[j]);
}
add(ans[x], mic);
}
for(i=ans[1][0]; i; --i ) printf("%d", ans[1][i]);
printf("\n");
return 0;
}