Cod sursa(job #257676)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 13 februarie 2009 19:29:01
Problema Indep Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <cstdio>
#include <cassert>
int N,a[505],sol;
int cmmdc(int x,int y){
    if (y==0) return x;
    return cmmdc(y,x%y);
    }
int main(){
    int i,j,k;
    freopen("indep.in","r",stdin);
    freopen("indep.out","w",stdout);
    scanf("%d",&N);
    for (i=1;i<=N;++i)
        scanf("%d",&a[i]);
    assert(N<=30);
    int doilan=1<<N,nr;
    for (i=1;i<doilan;++i){
      nr=0;k=0;
      for (j=0;j<N;++j)
       if ((1<<j)&i){
          ++nr;
          k=cmmdc(k,a[j+1]);
          }
      if (nr>1 && k==1) ++sol;
      }
    printf("%d",sol);   
    return 0;
}