Given is a number sequence A of length N.

Find the number of integers i \left(1 \leq i \leq N\right) with the following property:

* For every integer j \left(1 \leq j \leq N\right) such that i \neq j , A_j does not divide A_i.

Constraints

* All values in input are integers.
* 1 \leq N \leq 2 \times 10^5
* 1 \leq A_i \leq 10^6

Input

Input is given from Standard Input in the following format:


N
A_1 A_2 \cdots A_N


Output

Print the answer.

Examples

Input

5
24 11 8 3 16


Output

3


Input

4
5 5 5 5


Output

0


Input

10
33 18 45 28 8 19 89 86 2 4


Output

5
import java.util.*;

public class Main {
  public static void main(String... args) {
    Scanner input = new Scanner(System.in);

    int n = input.nextInt();
    int[] a = new int[n];
    for (int i = 0; i < n; i++) {
      a[i] = input.nextInt();
    }

    Arrays.sort(a);
    int ans = 0;
    if (a[0] == 1) {
      if (n >= 2 && a[0] == a[1]) {
        ans = 0;
      } else {
        ans = 1;
      }
    } else {
			Set<Integer> removeLater = new HashSet<>();
      List<Integer> unique = new ArrayList<>();
      for (int i = 0; i < n;) {
        int cnt = 1;
        int j = i + 1;
        for (; j < n && a[i] == a[j]; j++) {
          cnt++;
        }
        unique.add(a[i]);
        if (cnt > 1) {
					removeLater.add(a[i]);
        }
        i = j;
      }
      if (unique.size() != 0) {
        int max = unique.get(unique.size() - 1);
        Set<Integer> set = new HashSet<>(unique);
        for (int i = 0; i < unique.size(); i++) {
          int v = unique.get(i);
          for (int j = 2 * v; j <= max; j += v) {
            set.remove(j);
          }
        }
				set.removeAll(removeLater);
        ans = set.size();
      }
    }



    System.out.println(ans);

  }
}