#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define RALL(x) (x).rbegin(),(x).rend() #define ALL(x) (x).begin(),(x).end() #define repp(i,n) for(int (i)=1;(i)<=(n);(i)++) #define rep(i,n) for(int (i)=0;(i)<(n);(i)++) #define rev(i,n) for(int (i)=(n-1);(i)>=0;(i)--) #define clr(a) memset((a), 0 ,Nof(a)) #define found(s,e) ((s).find(e)!=(s).end()) typedef pair P; typedef vector > pii; typedef map mdi; long long gcd(long long a, long long b){ if(b==0)return a; return gcd(b,a%b); } long long lcm(long long m, long long n ){ if ( ( 0 == m ) || ( 0 == n ) ) return 0; return ((m / gcd(m, n)) * n); } int main(){ long long n,a,b,c,cnt=0,ab,ac,bc,abc; cin >> n >> a >> b >> c; ab=lcm(a,b); ac=lcm(a,c); bc=lcm(b,c); abc=lcm(bc,lcm(ab,ac)); cnt+=n/a+n/b+n/c+n/abc; cnt-=n/ab; if(ab!=ac) cnt-=n/ac; if(ab!=bc){ if(ac!=bc) cnt-=n/bc; } cout << cnt << endl; return 0; }