#include <fstream>
#include <cmath>
using namespace std;
ifstream f("indep.in");
ofstream g("indep.out");
int i,x[1010],xx[1010],j,nr,v[510],suma[1010],diferenta[1010],maxim,p[510][510],doi[1010],n,k,pork[3],ok,nrdiv;
void sum(int A[],int B[],int C[])
{
int i,t=0;
for(i=1;i<=A[0]||i<=B[0]||t;i++)
{
t+=A[i]+B[i];
C[i]=t%10;
t=t/10;
}
C[0]=i-1;
}
void inm(int A[], int x, int C[])
{
int i,t=0;
for(i=1;i<=A[0]||t;i++)
{
t+=A[i]*x;
C[i]=t%10;
t=t/10;
}
C[0]=i-1;
}
void dif(int A[],int B[],int C[])
{
int i,t=0,neg;
for(i=1; i<=A[0]; i++)
{
if(A[i]<B[i]+t)
{
C[i]=A[i]+10-B[i]-t;
t=1;
}
else
{
C[i]=A[i]-B[i]-t;
t=0;
}
}
C[0]=i-1;
while(C[C[0]]==0)
C[0]--;
}
//int n,m,v[10000],u[10000],pork[2],i;
int main()
{
f>>n;
pork[0]=1;
pork[1]=1;
for(i=1;i<=n;i++)
{f>>v[i];if(v[i]>maxim) maxim=v[i];}
p[1][0]=1;
p[1][1]=1;
doi[0]=1;
doi[1]=2;
suma[0]=1;
suma[1]=0;
diferenta[0]=1;
diferenta[1]=0;
for(i=2;i<=n;i++)
{
inm(doi,2,doi);
dif(doi,pork,p[i]);
}
int var;
for(i=2;i<=maxim;i++)
{
ok=1;
var=i;
j=2;
while(var!=1&&ok==1)
{
nr=0;
while(var%j==0)
{
nr++;
var/=j;
if(nr>1) {ok=0;break;}
}
if(nr==1)
{
nrdiv++;
}
j++;
}
if(ok==1)
{
x[++k]=i;
xx[k]=nrdiv;
}
nrdiv=0;
}
for(i=1;i<=k;i++)
{
nr=0;
for(j=1;j<=n;j++)
{
if(v[j]%x[i]==0)
{
nr++;
}
}
if(xx[i]%2==1)
sum(diferenta,p[nr],diferenta);
else
sum(suma,p[nr],suma);
}
sum(p[n],suma,p[n]);
dif(p[n],diferenta,p[n]);
if(p[n][0]<=0)
g<<0;
else
{
for(i=p[n][0];i>=1;i--)
g<<p[n][i];
}
return 0;
}