package main import ( "bufio" "os" "strconv" "fmt" ) const MOD = 1e9 + 7 func gcd(a, b int) int { for (b > 0) { a, b = b, a % b } return a } func lcm(a, b int) int { return a * b / gcd(a, b) } func main() { N := nextInt() var a, b, c int _, err := fmt.Scanf("%d %d %d", &a, &b, &c) if err != nil { panic(err) } ans := (N / a) + (N / b) + (N / c) ans -= N / lcm(a, b) ans -= N / lcm(b, c) ans -= N / lcm(a, c) ans += N / lcm(lcm(a, b), c) fmt.Println(ans) } var s = bufio.NewScanner(os.Stdin) func next() string { s.Split(bufio.ScanWords) s.Scan() return s.Text() } func nextLine() string { s.Split(bufio.ScanLines) s.Scan() return s.Text() } func nextInt() int { i, e := strconv.Atoi(next()) if e != nil { panic(e) } return i } func nextLong() int64 { i, e := strconv.ParseInt(next(), 10, 64) if e != nil { panic(e) } return i } func min(a int, b int) int { if a < b { return a } return b } func max(a int, b int) int { if a < b { return b } return a }