Cod sursa(job #1783379)

Utilizator Liviu_Ionut_MoantaMoanta Ionut Liviu Liviu_Ionut_Moanta Data 18 octombrie 2016 23:05:45
Problema Indep Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
using namespace std;
ifstream fin ("indep.in");
ofstream fout("indep.out");
long long f(int x){
    int y=1;
    for(int i=1;i<=x;i++){
        y*=2;
    }
    return y;
}
int n,i,j,maxim,i1,q,e,sol,k,v[503],x[1003],y[1003];
int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>v[i];
        if(v[i]>maxim){
            maxim=v[i];
        }
    }
     for(i=2;i<=maxim;i++){
        j=2;
        i1=i;
        int ok=1;
        q=0;
        while(i1!=1){
            e=0;
            while(i1%j==0){
                e++;
                i1/=j;
            }
            if(e>=2){
                ok = 0;
            }
            if(e==1){
                q++;
            }
            j++;
        }
        if (ok==1) {
            x[++k]=i;
            y[k]=q;
        }

    }
    for (i=1;i<=k;i++) {
        q=0;
        for (j=1;j<=n;j++)
            if (v[j]%x[i]==0)
                q++;
        if (y[i]%2==1)
            sol+=(f(q)-1);
        else
            sol-=(f(q)-1);
    }
    fout<<f(n)-1-sol;
    return 0;
}