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.*;
import java.io.PrintWriter;
import static java.lang.Integer.*;
import static java.lang.Long.*;
import static java.lang.Math.*;
import static java.lang.System.*;

public class Main {
	public static final int MOD = 1000000007;
	public static void main(String[] args) {
		int i,j;
		Scanner sc = new Scanner(in);
		int n = parseInt(sc.next());
		int[] a = new int[n];
		for (i = 0; i < n; i++) {
			a[i] = parseInt(sc.next());
		}
		sc.close();
		int ans=0;
		Arrays.parallelSort(a);
		boolean[] af = new boolean[n];
//		Arrays.fill(af, true);
		for (i = 1; i < a.length; i++) {
			if(a[i-1]==a[i]) {
				af[i-1]=true;
				af[i]=true;
			}
		}
		for (i = 0; a[i]*2 <= a[n-1]; i++) {
			int k = a[i]*2;
			int ret=0;
			while(k<=a[n-1]&&ret<n) {
				ret = Arrays.binarySearch(a, i+1, n, k);
				if(n>ret && ret>=0) {
					af[ret]=true;
				}
				k+=a[i];
			}
		}
//		if(n>=2&&a[0]<a[1])ans++;
//		for (i = 1; i < a.length; i++) {
//			if(af[i]) continue;
//			boolean f=true;
//			for (j = 0; j < i; j++) {
//				int k = a[j];
//				if(a[i]%a[j]==0) {
//					af[i]=true;
//					f=false;
//					break;
//				}
//			}
//			if(f)ans++;
//		}
		for (i = 0; i < a.length; i++) {
			if(!af[i]) ans++;
		}
		out.println(ans);
	}
}
