#include <bits/stdc++.h>   long long gcd(long long a, long long b) { return (a ? gcd(b % a, a) : b); }   long long power(long long a, long long n) {     long long p = 1;     while (n > 0) {       if (n % 2) {         p = p * a;       }       n >>= 1;       a *= a;     }     return p;   }   long long power(long long a, long long n, long long mod) {     long long p = 1;     while (n > 0) {       if (n % 2) {         p = p * a;         p %= mod;       }       n >>= 1;       a *= a;       a %= mod;     }     return p % mod;   }   using namespace std;   int a[100004], b[100004], c[100004];   vector<int> p;   void sieve() {     int i, j;     for (i = 2; i * i <= 100000; i++)       if (!b[i])         for (j = i * i; j <= 100000; j += i) b[j] = 1;     for (i = 2; i <= 100000; i++)       if (!b[i]) p.push_back(i);   }   int main() {     int i, j;     int n;     sieve();     scanf( %d , &n);     for (i = 0; i < n; i++) scanf( %d , &a[i]);     int x, y;     for (i = 0; i < n; i++) {       x = a[i];       for (j = 0; p[j] * p[j] <= a[i]; j++) {         if (x % p[j] == 0) c[p[j]]++;         while (x % p[j] == 0) x = x / p[j];       }       if (x > 1) c[x]++;     }     x = 1;     for (i = 0; i < p.size(); i++) x = max(x, c[p[i]]);     printf( %d n , x);     return 0;   }   