#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
int n;
long long x, y;
int a[maxn];
long long sum[maxn];
bool is_prime[maxn];
void init() {
  memset(is_prime, 0, sizeof(is_prime));
  for (int i = 2; i < maxn; i++) is_prime[i] = 1;
}
int main() {
  ios::sync_with_stdio(false);
  while (cin >> n) {
    cin >> x >> y;
    memset(sum, 0, sizeof(sum));
    for (int i = 0; i < n; i++) {
      cin >> a[i];
      sum[a[i]]++;
    }
    long long ans = (long long)n * x;
    long long cnt;
    init();
    for (int i = 2; i < maxn; i++) {
      if (is_prime[i]) {
        cnt = sum[i];
        for (int j = i + i; j < maxn; j += i) {
          cnt += sum[j];
          is_prime[j] = 0;
        }
        if ((n - cnt) * min(x, y) < ans) {
          long long ret = 0;
          for (int j = 0; j < n; j++) {
            if (a[j] % i != 0) {
              long long v1 = x;
              long long v2 = (i - a[j] % i) * y;
              ret += min(v1, v2);
            }
          }
          ans = min(ans, ret);
        }
      }
    }
    cout << ans << endl;
  }
  return 0;
}
