#include <cstdio> // {{{ #include <iostream> #include <vector> #include <string> #include <map> #include <set> #include <algorithm> #define GET_MACRO(a, b, c, d, NAME, ...) NAME #define REP(...) GET_MACRO(__VA_ARGS__, REP4, REP3, REP2)(__VA_ARGS__) #define REP2(i, a) REP3(i, 0, a) #define REP3(i, a, b) REP4(i, a, b, 1) #define REP4(i, a, b, s) for (int i = (a); i < (int)(b); i += (s)) #define REPR(...) GET_MACRO(__VA_ARGS__, REPR4, REPR3, REPR2)(__VA_ARGS__) #define REPR2(i, a) REPR3(i, 0, a) #define REPR3(i, a, b) REPR4(i, a, b, 1) #define REPR4(i, a, b, s) for (int i = (b)-1; i >= (int)(a); i -= (s)) #define ALL(c) (c).begin(), (c).end() using Int = long long; // clang-format off template<typename T,typename U>inline bool chmax(T&x,U a){return x<a&&(x=a,1);} template<typename T,typename U>inline bool chmin(T&x,U a){return a<x&&(x=a,1);} inline signed in(){signed x;scanf("%d",&x);return x;} // clang-format on // }}} using namespace std; Int lcm(Int x, Int y) { return x / __gcd(x, y) * y; } signed main() { Int N = in(); Int a = in(), b = in(), c = in(); Int ab = lcm(a, b), bc = lcm(b, c), ca = lcm(c, a); Int abc = lcm(ab, c); Int R = N / a + N / b + N / c - N / ab - N / bc - N / ca + N / abc; cout << R << endl; return 0; }