'use strict';

function Main(input) {
    let tmp = input.trim().split('\n');
    const N = Number(tmp[0]);
    let A = tmp[1].split(' ').map((v) => Number(v)).sort((a, b) => a - b);

    // 1が存在する場合
    if (A[0] === 1) {
        const filterA = A.filter(v => v === 1);
        if (filterA.length === 1) {
            console.log('1');
            return;
        } else {
            console.log('0');
            return;
        }
    }

    let siftedA = [];

    for (let i = 2; i <= 10**6; i++) {
        if (A[0] !== i) continue;
        if (A.length === 1 || A[0] !== A[1]) {
            siftedA.push(A[0]);
        }
        A = A.filter(v => v % i !== 0)
        if (A.length === 0 || i > A[A.length - 1]) break;
    }

    console.log(String(siftedA.length + A.length));


    return;
}
Main(require('fs').readFileSync('/dev/stdin', 'utf8'));

// Main(`5
// 24 11 8 3 16`); // 3
// Main(`4
// 5 5 5 5`);  // 0
// Main(`10
// 33 18 45 28 8 19 89 86 2 4`);   // 5