fun readLargeInt () = valOf (TextIO.scanStream (LargeInt.scan StringCvt.DEC) TextIO.stdIn) fun gcd a b = if b = 0 then a else gcd b (a mod b) fun lcm a b = (a div (gcd a b) * b) val () = let val n = readLargeInt () val a = readLargeInt () val b = readLargeInt () val c = readLargeInt () val numOfA = n div a val numOfB = n div b val numOfC = n div c val numOfLcm_ab = n div (lcm a b) val numOfLcm_bc = n div (lcm b c) val numOfLcm_ca = n div (lcm c a) val numOfLcm_abc = n div (lcm (lcm a b) c) val ans = numOfA + numOfB + numOfC - (numOfLcm_ab + numOfLcm_bc + numOfLcm_ca) + numOfLcm_abc in print (LargeInt.toString ans ^ "\n") end