(* O(n√n) *)
open Hashtbl
let n = read_int ()
let h = create n
let factorize n =
  let g k v = if mem h k then replace h k @@ find h k + v else add h k v in
  let rec f c d m =
    if d > m || d * d > n then
      if c > 0 then g d c else if m > 1 then g m 1 else ()
    else
      if m mod d = 0 then f (c + 1) d @@ m / d
      else (if c > 0 then g d c; f 0 @@ d + 1) m in
  f 0 2 n
let divisor_count h = fold (fun _ c acc -> acc * (c + 1) mod 1_000_000_007) h 1
let rec f n = if n = 0 then divisor_count h else (factorize n; f @@ n - 1)
let _ = f n |> Printf.printf "%d\n"