"use strict";

function Main(input) {
    // 1行目がinput[0], 2行目がinput[1], …に入る
    input = input.split("\n");
    let n = parseInt(input[0], 10);
    let a = input[1].split(" ").map(str => parseInt(str, 10)); //a[0], ... , a[n-1]
    let cand = a;   //candidate:候補

    //重複を消す
    a = a.filter(function (x, i, self) {
        return self.indexOf(x) === i;
    });
    a.sort(compareFunc);    //配列aを昇順に並び替えた

    //a[i]が割る側の数a[j]以上の大きさでなければ、割り切りようがない
    //常にi>jしか見る必要がない
    for (let j = 0; j < n; j++) {
        for (let i = j + 1; i < n; i++) {
            if (a[i] % a[j] == 0) {　//割り切れたらa[i]はa[j]の倍数。候補から外す
                delete cand[i];
            }

        }
    }

    let res = cand.filter(function (a) {
        return a != undefined;
    });

    //出力
    if (a.length == 1) {
        console.log("0");
    } else {
        console.log('%d', res.length);
    }
}

function compareFunc(a, b) {
    return a - b;
}

Main(require("fs").readFileSync("/dev/stdin", "utf8"));