Cod sursa(job #325541)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 21 iunie 2009 00:47:46
Problema Indep Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdio>   
  
#define file_in "indep.in"   
#define file_out "indep.out"   
  
long long v[1010];   
long long n,Cnt[1010][1010];   
  
long long cmmdc(long long a, long long b)   
{   
    long long r;   
    while(b)   
    {   
        r=a%b;   
        a=b;   
        b=r;   
    }   
    return a;   
}   
  
int main()   
{   
    long long i,j;   
    freopen(file_in,"r",stdin);   
    freopen(file_out,"w",stdout);   
       
    scanf("%lld", &n);   
    for (i=1;i<=n;++i)   
         scanf("%lld", &v[i]);   
       
    Cnt[1][v[1]]=1;   
    for (i=1;i<n;++i)   
    {   
        Cnt[i+1][v[i+1]]++;   
        for (j=1;j<=1000;++j)   
        {   
            Cnt[i+1][j]+=Cnt[i][j];   
            Cnt[i+1][cmmdc(j,v[i+1])]+=Cnt[i][j];    
        }   
    }   
  
    printf("%lld", Cnt[n][1]);   
       
    fclose(stdin);   
    fclose(stdout);   
       
    return 0;   
}