#include<stdio.h>

/* 値を入れ替える関数 */
void swap (long *x, long *y) {
  long temp;    // 値を一時保存する変数

  temp = *x;
  *x = *y;
  *y = temp;
}

/***
* pivotを決め、
* 全データをpivotを境目に振り分け、
* pivotの添え字を返す
***/
long partition (long array[], long left, long right) {
  long i, j, pivot;
  i = left;
  j = right + 1;
  pivot = left;   // 先頭要素をpivotとする

  do {
    do { i++; } while (array[i] < array[pivot]);
    do { j--; } while (array[pivot] < array[j]);
    // pivotより小さいものを左へ、大きいものを右へ
    if (i < j) { swap(&array[i], &array[j]); }
  } while (i < j);

  swap(&array[pivot], &array[j]);   //pivotを更新

  return j;
}

/* クイックソート */
void quick_sort (long array[], long left, long right) {
  long pivot;

  if (left < right) {
    pivot = partition(array, left, right);
    quick_sort(array, left, pivot-1);   // pivotを境に再帰的にクイックソート
    quick_sort(array, pivot+1, right);
  }
}
int main(){
long n=0;
long a[200000]={};
scanf("%ld",&n);

for(long i=0;i<n;i++){
    scanf("%ld",&a[i]);
}
long ans=0;
int fl=0;
quick_sort(a,0,n-1);
long end=0;
for(long i=0;i<n;i++){
    fl=0;
    if(i+1<n){
        end=i+1;
    }else{
        end=i;
    }
    for(long j=0;j<end+1;j++){
        if(i==j){

        }else{
        if(a[i]==a[j]){
            fl=1;
            break;
        }else{
            if(a[i]%a[j]==0){
                fl=1;
                break;
            }
        }
        }
    }
    if(fl==0){
        ans++;
    }
}

printf("%ld\n",ans);

return 0;

}