#include<stdio.h>
#include<math.h>
#define TRUE 1
#define FALSE 0

void BubbleSort(int array[],int N) //バブルソート(小さい順) O(N^2)
{
    int i, j, temp;
    for (i = 0;i < N - 1;i++) {
        for (j = 0;j < N - 1;j++) {
            if (array[j + 1] < array[j]) {
                temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;
            }
        }
    }
}

int main()
{
  int N,A[200001];
  scanf("%d",&N);
  for(int i=0;i<N;i++){
    scanf("%d",&A[i]);
  }
  BubbleSort(A,N);
  
  int A_max = A[N-1];
  int dp[A_max];
  for(int i=0;i<A_max;i++){
    dp[i]=1;
  }
  
  for(int i=0;i<sqrt(A_max);i++){
    if(dp[A[i]]==FALSE) continue;
    if(A[i]==A[i+1]){
      dp[A[i]-1]=FALSE;
    }
    for(int j=2;j<A_max/A[i]+1;j++){
      dp[j*A[i]-1]=FALSE;
    }
  }
  
  int count=0;
  for(int i=0;i<N;i++){
    if(dp[A[i]-1]==TRUE) count++;
  }
  
  printf("%d",count);
}