// Slower C++ solution:
#include <bits/stdc++.h>

#define REP(i, n) for(int i = 0;i < n;i++)

#define ll long long

using namespace std;

//typedef vector<unsigned int>vec;

//typedef vector<ll>vec;

//typedef vector<vec> mat;

typedef pair<int, int> P;

typedef pair<ll,ll> LP;

const int dx[8] = {1, 0, -1, 0, 1, -1, -1, 1};

const int dy[8] = {0, 1, 0, -1, 1, 1, -1, -1};

const int INF = 1000000000;

const ll LINF = 1000000000000000000;//1e18

const ll MOD = 1000000007;

const ll MOD2 = 998244353;

const double PI = acos(-1.0);

const double EPS = 1e-10;



template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; }

template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; }

//template<class T> inline void add(T &a, T b){a = ((a+b) % MOD + MOD) % MOD;};



vector<ll> divisor(ll n){

    vector<ll> res;

    for(ll i=1; i*i <= n; i++){

        if(n % i == 0){

            res.push_back(i);

            if(i != n / i) res.push_back(n / i);

        }

    }

    return res;

}



void solve(){

    int N;

    cin >> N;

    vector<int> A(N);

    vector<int> mp(2020202);

    REP(i,N){

        cin >> A[i];

        mp[A[i]]++;

    }

    int ans = 0;

    REP(k,N){

        mp[A[k]]--;

        bool ok = true;

        for(ll i=1; i*i <= A[k]; i++){

            if(A[k] % i == 0){

                if(mp[i] > 0){

                    ok = false;

                }

                if(i != A[i] / i) if(mp[A[k]/i] > 0){

                    ok = false;

                }

            }

            if(!ok) break;

        }

        if(ok){

            // cout << k << endl;

            ans++;

        }

        mp[A[k]]++;

    }

    cout << ans << endl;

}



int main(){

    cin.tie(0);

    ios::sync_with_stdio(false);

    solve();

    // int T; cin >> T; REP(t,T) solve();

}

// Faster C++ solution for the same problem (measured speedup: 0.9084656189009821x):
#include <bits/stdc++.h>

#define REP(i, n) for(int i = 0;i < n;i++)

#define ll long long

using namespace std;

//typedef vector<unsigned int>vec;

//typedef vector<ll>vec;

//typedef vector<vec> mat;

typedef pair<int, int> P;

typedef pair<ll,ll> LP;

const int dx[8] = {1, 0, -1, 0, 1, -1, -1, 1};

const int dy[8] = {0, 1, 0, -1, 1, 1, -1, -1};

const int INF = 1000000000;

const ll LINF = 1000000000000000000;//1e18

const ll MOD = 1000000007;

const ll MOD2 = 998244353;

const double PI = acos(-1.0);

const double EPS = 1e-10;



template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; }

template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; }

//template<class T> inline void add(T &a, T b){a = ((a+b) % MOD + MOD) % MOD;};



void solve(){

    int N;

    cin >> N;

    vector<int> A(N);

    vector<int> cnt(1010101);

    REP(i,N) cin >> A[i];

    REP(i,N){

        if(cnt[A[i]] > 0){

            cnt[A[i]]++;

            continue;

        }

        for(int k=A[i];k<1010101;k+=A[i]) cnt[k]++;

    }

    int ans = 0;

    REP(i,N) if(cnt[A[i]] == 1) ans++;

    cout << ans << endl;

}



int main(){

    cin.tie(0);

    ios::sync_with_stdio(false);

    solve();

    // int T; cin >> T; REP(t,T) solve();

}