#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;
}
