fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) val () = let val n = readInt () val isUsed = Array.array (n + 1, false) fun findAnsAux k = if n < k then ignore () else ( Array.update (isUsed, n div k, true); findAnsAux (k + 1) ) fun findAns () = ( findAnsAux 1; Array.foldl (fn (b, acc) => if b = true then acc + 1 else acc) 0 isUsed ) val ans = findAns () in print (Int.toString ans ^ "\n") end