using System; using System.Collections.Generic; using System.Linq; namespace yukicoder { public class Program { public static void Main() { var n = int.Parse(Console.ReadLine()); var a = Console.ReadLine().Split(' ').Select(value => long.Parse(value)).ToArray(); if (a[1] % a[0] == 0 && a[2] % a[0] == 0) { Console.WriteLine(n / a[0]); } else if (a[1] % a[0] == 0) { Console.WriteLine(n / a[0] + n / a[2] - n / Lcm(a[0] , a[2])); } else if (a[2] % a[0] == 0 || a[2] % a[1] == 0) { Console.WriteLine(n / a[0] + n / a[1] - n / Lcm(a[0] , a[1])); } else { Console.WriteLine(n / a[0] + n / a[1] + n / a[2] - n / Lcm(a[0] , a[1]) - n / Lcm(a[1] , a[2]) - n / Lcm(a[0] , a[2]) + n / Lcm(a[0] , Lcm(a[1] , a[2]))); } } public static long Lcm(long a, long b) { return a * b / Gcd(a, b); } // ユークリッドの互除法 public static long Gcd(long a, long b) { if (a < b) // 引数を入替えて自分を呼び出す return Gcd(b, a); while (b != 0) { var remainder = a % b; a = b; b = remainder; } return a; } } }