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.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;

public class Main {
	public static void main(String[]args) {
		try(Scanner scan = new Scanner(System.in)){
			
			
			int N = scan.nextInt();
			int[]A = new int[N];
			Set<Integer>set = new TreeSet<Integer>();
			List<Integer>list = new ArrayList<Integer>();
			Map<Integer,Integer>map = new TreeMap<Integer,Integer>();
			
			

			for(int i = 0;i<N;i++) {
				A[i] = scan.nextInt();
				set.add(A[i]);
				list.add(A[i]);
				map.put(A[i], 1);
			}
			
			Collections.sort(list);
			
			
			for(int i = 0;i<list.size();i++) {
				int num = list.get(i);
				int max = list.get(list.size()-1);
				
				if(i>=1&&list.get(i-1)==num) {
					map.put(num, 0);
					continue;
				}
				
				if(map.get(num)==0)continue;
				
				for(int j =2*num;j<=max;j =j+num) {
					//System.out.println(j);
					if(set.contains(j)) {
						if(map.get(j)==1) {
							//System.out.println("    "+j);
							map.put(j,0);
						}
						
					}
				}
				
				
			}
			
			int count = 0;
			
			
			for(Integer key: map.keySet()) {
				if(map.get(key)==1)count++;
			}
			
			
			System.out.println(count);
			
			
			
			
			
			
			
					
			
			
			
		}
		
		
	}
		

}
