#include <bits/stdc++.h>
using namespace std;
const int N = 15000001;
int64_t primes[N];
int64_t gcd(int64_t a, int64_t b) {
  if (a == 0)
    return b;
  else
    return gcd(b % a, a);
}
int64_t Power(int64_t base, int64_t e) {
  if (e == 0) return 1;
  int64_t ans = base;
  e--;
  while (e) {
    if (e & 1) ans = (ans * base);
    base = (base * base);
    e >>= 1;
  }
  return (ans);
}
void sieve() {
  for (int64_t i = 2; i <= N; i++) {
    if (primes[i] == -1) {
      for (int64_t j = i; j <= N; j += i) primes[j] = i;
    }
  }
}
int main() {
  for (int64_t i = 0; i < N; i++) {
    primes[i] = -1;
  }
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  sieve();
  map<int64_t, int64_t> mp;
  int64_t n;
  cin >> n;
  int64_t a[n];
  int64_t tmp;
  for (int64_t i = 0; i < n; i++) cin >> a[i];
  int64_t ggcd;
  ggcd = a[0];
  for (int64_t i = 0; i < n; i++) {
    ggcd = gcd(ggcd, a[i]);
  }
  int64_t ggcd2 = 1;
  for (int64_t i = 0; i < n; i++) {
    a[i] = a[i] / ggcd;
  }
  for (int64_t i = 0; i < n; i++) {
    tmp = a[i];
    while (tmp > 1) {
      int64_t y = primes[tmp];
      while (tmp % y == 0) {
        tmp = tmp / y;
      }
      mp[y]++;
    }
  }
  int64_t freq = 0;
  int64_t val = ggcd;
  for (auto kk : mp) {
    if (freq <= kk.second) {
      val = kk.first;
      freq = kk.second;
    }
  }
  if (freq) {
    cout << (n - freq) << endl;
  } else
    cout << -1 << endl;
}
