#include <bits/stdc++.h>
using namespace std;
const int maxN = 1e6 + 5;
int n, x, y, ile[4 * maxN];
long long pref[4 * maxN], mini = 1e18;
bool czy = 0;
long long spr(long long x, long long y) {
  long long t;
  if (__builtin_smulll_overflow(x, y, &t)) czy = 1;
  return x * y;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> x >> y;
  for (int i = 0, a; i < n; i++) cin >> a, ile[a]++, pref[a] += a;
  for (int i = 1; i < 4 * maxN; i++)
    ile[i] += ile[i - 1], pref[i] += pref[i - 1];
  for (int i = 2; i < maxN; i++) {
    long long temp = 0;
    int f = max<double>(0, ceil(i - double(x) / y) - 1);
    czy = 0;
    for (int j = 0; i * j < maxN && !czy; j++) {
      temp += (long long)(ile[i * j + f] - ile[i * j]) * x;
      if (temp < 0) czy = 1;
      temp += spr(spr(i * j + i, ile[i * j + i] - ile[i * j + f]) -
                      (pref[i * j + i] - pref[i * j + f]),
                  y);
      if (temp < 0) czy = 1;
    }
    if (!czy) {
      mini = min(mini, temp);
    }
  }
  cout << mini << endl;
  return 0;
}
