// yukicoder: No.546 オンリー・ワン // 2019.4.20 bal4u #include #if 1 #define gc() getchar_unlocked() #else #define gc() getchar() #endif int in() // 非負整数の入力 { int n = 0, c = gc(); do n = 10 * n + (c & 0xf), c = gc(); while (c >= '0'); return n; } int gcd(int a, int b) { int r; while (b != 0) r = a % b, a = b, b = r; return a; } long long lcm(int a, int b) { return (long long)a/gcd(a, b)*b; } int N, L, H; int c[12]; int ans; /* 2^16までのビット数を数える */ int bitcount(int x) { x = ((x & 0xAAAAAA) >> 1) + (x & 0x555555); x = ((x & 0xCCCCCC) >> 2) + (x & 0x333333); x = ((x & 0xF0F0F0) >> 4) + (x & 0x0F0F0F); return ((x & 0x00FF00) >> 8) + (x & 0xFF00FF); } int main() { int i, j, k, t, lim; long long g; N = in(), L = in()-1, H = in(); ans = 0; for (i = 0; i < N; i++) { c[i] = in(); ans += (H/c[i] - L/c[i]); } if (N >= 2) { lim = 1<> j) & 1) { g = lcm((int)g, c[j]); if (g > H) break; } if (g <= H) { t = k * (H/(int)g - L/(int)g); if (k & 1) ans += t; else ans -= t; } } } printf("%d\n", ans); return 0; }