Problem:
Score : 400 points

Problem Statement

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.

Sample Input 1

5
24 11 8 3 16

Sample Output 1

3

The integers with the property are 2, 3, and 4.

Sample Input 2

4
5 5 5 5

Sample Output 2

0

Note that there can be multiple equal numbers.

Sample Input 3

10
33 18 45 28 8 19 89 86 2 4

Sample Output 3

5

Solution in JavaScript (Node.js 12.16.1) (judge verdict: Wrong Answer)

const input = require("fs").readFileSync("/dev/stdin", "utf8")
;(input => {
    const rows = input.split('\n')
    const N = rows[0] - 0

    const A = rows[1].split(' ').map(Number)
    A.sort((a, b) => {
        return a < b ? -1 : 1
    })

    const mem = []
    let count = 0

    for (let i = 0; i < N; i ++) {
        if (mem[A[i]] === 0) {
            count = Math.max(0, count - 1)
            continue
        } else if (mem[A[i]] === 1) {
            continue
        } else {
            mem[A[i]] = 0
        }
        for (let j = 2; A[i] * j <= A[N - 1]; j++) {
            mem[A[i] * j] = 1
        }
        count++
    }
    console.log(count)

})(input)