#include<bits/stdc++.h>
using namespace std;
int n,a[11],b[11][11],c[11],d[11];
bool gcd(int x,int y){
for(int i=2;i<=min(x,y);i++){
if(x%i==0&&y%i==0)return 0;
}
return 1;
}
void dfs(int x,int y){
if(c[x]==0&&x==1)b[x][++c[x]]=a[y];
else{
for(int k=1;k<=x;k++){
for(int i=1;i<=c[x];i++){
if(gcd(a[y],b[k][i])==0){
d[y]=0;
break;
}
}
if(d[y]==1)break;
}
if(d[y]==1)b[x][++c[x]]=a[y];
if(d[y]==0)b[++x][1]=a[y];
}
if(y==n){cout<<x<<endl;exit(0);}
dfs(x,y+1);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)d[i]=1;
dfs(1,1);
return 0;
}
40分求调