#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include // #include // #include // #include // #include // #include #define all(x) begin(x), end(x) using namespace std; // using namespace atcoder; // using mint = atcoder::modint998244353; // using mint = atcoder::modint1000000007; using i32 = int; using i64 = long long; using ld = long double; template inline bool chmax(T1 &a, T2 b) {return a < b and (a = b, true);} template inline bool chmin(T1 &a, T2 b) {return a > b and (a = b, true);} const i64 supl = LONG_LONG_MAX / 2 - 100; const i32 supi = INT_MAX / 2 - 100; i64 cnt(i32 n, i64 d) { return n / d; } void main_() { i32 n; cin >> n; i64 a, b, c; cin >> a >> b >> c; i64 ans = 0; ans += cnt(n, a) + cnt(n, b) + cnt(n, c); ans -= cnt(n, lcm(a, b)) + cnt(n, lcm(b, c)) + cnt(n, lcm(c, a)); ans += cnt(n, lcm(a, lcm(b, c))); cout << ans << endl; } int main() { ios::sync_with_stdio(false); std::cin.tie(nullptr); main_(); return 0; }