import sys
from io import StringIO
import unittest
import os
import math
import collections
import math

# 再帰処理上限(dfs作成時に設定するのが面倒なので限度近い値を組み込む)
sys.setrecursionlimit(999999999)


# 実装を行う関数
def resolve(test_def_name=""):
    # 数値取得サンプル
    #   1行N項目 x, y = map(int, input().split())
    #   N行N項目 x = [list(map(int, input().split())) for i in range(n)]

    # 文字取得サンプル
    #   1行1項目 x = input()
    n = int(input())

    a_list = list(map(int, input().split()))
    # a_list = list(set(a_list))
    a_list.sort()
    collections.Counter(a_list)

    dp = [0 for i in range(1000001)]
    ans = 0

    # for i in range(len(a_list)):
    a_counter = collections.Counter(a_list)
    for a, cnt in a_counter.items():

        # 現在の桁が素数か判定
        if dp[a] > 0:
            dp[a] += 1
            continue

        # 次の桁が素数か判定するための準備
        # 現在の桁の情報を追加する
        aa = range(a, 1000001, a)
        for aaaa in aa:
            dp[aaaa] += cnt

    ans = 0
    for a in a_counter.keys():
        if dp[a] == 1:
            ans += 1

    print(ans)


# テストクラス
class TestClass(unittest.TestCase):
    def assertIO(self, assert_input, output):
        stdout, sat_in = sys.stdout, sys.stdin
        sys.stdout, sys.stdin = StringIO(), StringIO(assert_input)
        resolve(sys._getframe().f_back.f_code.co_name)
        sys.stdout.seek(0)
        out = sys.stdout.read()[:-1]
        sys.stdout, sys.stdin = stdout, sat_in
        self.assertEqual(out, output)

    def test_input_1(self):
        test_input = """5
24 11 8 3 16"""
        output = """3"""
        self.assertIO(test_input, output)

    def test_input_2(self):
        test_input = """4
5 5 5 5"""
        output = """0"""
        self.assertIO(test_input, output)

    def test_input_3(self):
        test_input = """10
33 18 45 28 8 19 89 86 2 4"""
        output = """5"""
        self.assertIO(test_input, output)

    # 自作テストパターンのひな形(利用時は「tes_t」のアンダーバーを削除すること
    def test_1original_1(self):
        test_input = """6
        2 7 21 1000000 1000000 1000000"""
        output = """2"""
        self.assertIO(test_input, output)

    def test_1original_2(self):
        test_input = """93
951 299 994 913 105 760 468 12 613 158 61 536 877 688 548 81 398 916 378 556 871 268 814 220 18 455 913 677 239 697 590 520 261 885 734 749 473 384 641 76 612 28 86 144 205 772 201 999 88 940 699 873 938 44 285 272 342 219 648 254 314 421 988 617 755 921 820 257 565 376 454 965 513 253 350 834 47 275 866 450 102 159 790 814 364 406 851 236 298 288 999 238 283
"""
        output = """67"""
        self.assertIO(test_input, output)

    def test_1original_3(self):
        test_input = """90
617 279 402 110 487 288 34 58 989 681 964 387 955 376 821 155 291 282 266 252 189 190 94 765 158 264 631 69 604 366 605 241 560 990 86 683 784 260 373 101 780 54 71 620 173 692 101 344 978 784 520 416 778 973 222 260 847 733 933 837 441 696 363 684 19 405 997 56 42 654 431 7 803 974 910 326 110 846 987 789 569 381 362 1 387 583 279 779 737 349
"""
        output = """1"""
        self.assertIO(test_input, output)


# 実装orテストの呼び出し
if __name__ == "__main__":
    if os.environ.get("USERNAME") is None:
        # AtCoder提出時の場合
        resolve()

    else:
        # 自PCの場合
        unittest.main()


Measured memory_bytes: 170324