#include <bits/stdc++.h>
using namespace std;
const int A = 1e6 + 10;
const int A2 = 2 * A;
vector<int> pref_ile(A2);
vector<long long> pref_sum(A2);
vector<bool> pierwsza(A2);
inline int get_ile(int l, int r) { return pref_ile[r] - pref_ile[l - 1]; }
inline long long get_sum(int l, int r) { return pref_sum[r] - pref_sum[l - 1]; }
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n, x, y;
  long long res = 1e15;
  cin >> n >> x >> y;
  for (int i = 0; i < n; i++) {
    int a;
    cin >> a;
    pref_ile[a]++;
    pref_sum[a] += a;
  }
  for (int i = 1; i < A2; i++) {
    pref_ile[i] += pref_ile[i - 1];
    pref_sum[i] += pref_sum[i - 1];
  }
  for (int i = 2; i < A; i++) {
    if (pierwsza[i]) continue;
    long long res_tmp = 0;
    int f = min(i - 1, x / y);
    for (int j = i; j < A + i; j += i) {
      pierwsza[j] = true;
      res_tmp += 1LL * x * get_ile(j - i + 1, j - f - 1) +
                 y * (1LL * get_ile(j - f, j) * j - get_sum(j - f, j));
      if (res_tmp > res) {
        break;
      }
    }
    res = min(res, res_tmp);
  }
  cout << res << "\n";
}
