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 Haskell (GHC 8.8.3) (judge verdict: Time Limit Exceeded)

import qualified Data.ByteString.Char8 as BS
import Data.Char
import Data.List

main = do
  li <- BS.getLine
  let Just (n,_) = BS.readInt li
  li <- BS.getLine
  let as = unfoldr (BS.readInt . BS.dropWhile isSpace) li
  let ans = compute n as
  print ans

-- 整列して、複数あるものは問題外。自分と同じ値で割り切れる。
-- 自分より大きい値は気にしなくていい。より小さい値だけが問題。
-- そこに、自分を割り切る数がなければセーフ。
-- セーフな値だけを、今後試せば十分。
compute :: Int -> [Int] -> Int
compute n as = length $ loop [] $ group $ sort as

loop _ [] = []
loop bs ([a]:as)
  | f    = () : loop (a:bs) as
  | True =      loop    bs  as
  where
    f = all ((0 /=).(mod a)) bs
loop bs ((a:_):as) = loop (a:bs) as