using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; class TEST{ static void Main(){ Sol mySol =new Sol(); mySol.Solve(); } } class Sol{ public void Solve(){ long ans=0; ans+=N/A; ans+=N/B; ans+=N/C; ans-=N/(A*B/gcd(A,B)); ans-=N/(B*C/gcd(B,C)); ans-=N/(C*A/gcd(C,A)); ans+=N/(A*B/gcd(A,B)*C/gcd(A*B/gcd(A,B),C)); Console.WriteLine(ans); } static long gcd(long a,long b){return a==0?b:gcd(b%a,a);} long N,A,B,C; public Sol(){ N=rl(); var d=rla(); A=d[0];B=d[1];C=d[2]; } static String rs(){return Console.ReadLine();} static int ri(){return int.Parse(Console.ReadLine());} static long rl(){return long.Parse(Console.ReadLine());} static double rd(){return double.Parse(Console.ReadLine());} static String[] rsa(){return Console.ReadLine().Split(' ');} static int[] ria(){return Array.ConvertAll(Console.ReadLine().Split(' '),e=>int.Parse(e));} static long[] rla(){return Array.ConvertAll(Console.ReadLine().Split(' '),e=>long.Parse(e));} static double[] rda(){return Array.ConvertAll(Console.ReadLine().Split(' '),e=>double.Parse(e));} }