Pagini recente » Cod sursa (job #2683078) | Cod sursa (job #1739634) | Cod sursa (job #888374) | Cod sursa (job #1967941) | Cod sursa (job #299593)
Cod sursa(job #299593)
#include <stdio.h>
#include <mem.h>
//#include <algorithm>
#define DIM 505
//using namespace std;
int a[DIM],b[2][DIM];
int n,nmax;
void read ()
{
int i;
scanf ("%d",&n);
for (i=1; i<=n; ++i)
{
scanf ("%d",&a[i]);
if (a[i]>nmax)
nmax=a[i];
}
}
int cmmdc (int a,int b)
{
int r;
do
{
r=a%b;
a=b;
b=r;
}
while (r);
return a;
}
void solve ()
{
int i,j,i1=0,i2=1,nr;
for (i=1; i<=n; ++i)
{
b[i2][a[i]]=1;
for (j=1; j<=nmax; ++j)
if (b[i1][j])
{
nr=cmmdc (a[i],j);
b[i2][nr]+=b[i1][j];
b[i2][j]+=b[i1][j];
}
i1^=i2^=i1^=i2;
memset (b[i2],0,sizeof (b[i2]));
}
printf ("%d",b[i1][1]);
}
int main ()
{
freopen ("indep.in","r",stdin);
freopen ("indep.out","w",stdout);
read ();
solve ();
return 0;
}