#include <bits/stdc++.h>
using namespace std;
int cnt1 = 0;
const int maxn = 1e5;
int fac[maxn + 5], vis[maxn + 5];
vector<int> prime;
void init() {
  memset(vis, 0, sizeof(vis));
  for (int i = 2; i <= maxn; i++) {
    if (!vis[i]) prime.push_back(i);
    for (int j = 0; j < prime.size() && i * prime[j] <= maxn; j++) {
      vis[i * prime[j]] = 1;
      if (i % prime[j] == 0) break;
    }
  }
}
void cal(int n) {
  int m = sqrt(n + 0.5);
  int cnt2 = 0;
  for (int i = 2; i <= m; i++) {
    if (n % i == 0) {
      fac[i]++;
      while (n % i == 0) n /= i;
    }
  }
  if (n > 1) fac[n]++;
}
int main() {
  int n, x;
  init();
  memset(fac, 0, sizeof(fac));
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &x);
    cal(x);
  }
  int ans = 1;
  for (int i = 0; i < prime.size(); i++) ans = max(ans, fac[prime[i]]);
  printf("%d", ans);
  return 0;
}
