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 Julia (1.4.0) (judge verdict: Runtime Error)

using Primes

function calc(B,i)
  tmp = 0
  for j in 1:i-1
    if B[i] % B[j] == 0
      tmp = 0
      break
    else
      tmp = 1
    end
  end
  tmp
end
parseInt(x) = parse(Int128, x)
parseMap(x::Array{SubString{String},1}) = map(parseInt, x)
#１行に数値一つならparseInt(readline())
#１行に数値複数ならparseMap(split(readline()))を行数分。
# 例：n,k = readline() |> split |> parseMap
#      a = readline() |> split |> parseMap
function main()
  N = parseInt(readline())
  A = parseMap(split(readline()))
  B = sort(A)
  #println("$N,$B")
  count=0
  C = zeros(Int64,N)
  if B[1] != B[2]
    C[1] = 1
  end
  for i in 2:N
    if any(isequal.(B[i],B[1:i-1]))==true
      C[i] = 0
      continue
    end
    if i!=N && any(isequal.(B[i],B[i+1]))==true
      C[i] = 0
      continue
    end
    if isprime(B[i]) == true
      C[i] = 1
    else
      C[i] = calc(B,i)
    end
#=    for j in 1:i-1
      if j==i
        continue
      else
          if B[i] % B[j] == 0
            C[i] = 0
            break
          else
            C[i] = 1
          end
      end
    end=#
  end
  #println("$C")
  println(length(C[C .== 1]))
  #println(size(C[C .== 1])[1])
  #println("Ans:",All[findall(isequal(minimum(q)),q)])
end
main()