module IntMap = Map.Make (struct
  type t = int
  let compare = compare
end)

type 'a church_list = { fold : 'b. ('a -> 'b -> 'b) -> 'b -> 'b }

let factorize :
  (* 素因数分解する整数 *)
  int ->
  (* 素因数と指数の組のリスト
     素因数について降順に出てくる *)
  (int * int) church_list
= fun n ->
  (* nをpで割れるだけ割って，割れた数c'にcを加えたものとn/p^c'を返す *)
  let rec iter_div p c n k =
    if 0 < n mod p
    then k c n
    else iter_div p (c + 1) (n / p) k in
  (* 素因数分解の処理の本体 *)
  let rec factorize f acc p n =
    if n <= 1
    then acc
    else if n < p * p
    then f (n, 1) acc
    else iter_div p 0 n @@ fun c ->
           factorize f (if c <= 0 then acc else f (p, c) acc) (p + 1) in
  { fold = fun f acc -> factorize f acc 2 n }

let rec solve x = function
  | [] -> if x = 1 then 1 else 0
  | n :: rest ->
      List.fold_left ( + ) 0 @@
      List.init (n + 1) @@ fun i ->
        if x mod (i + 1) <> 0 then 0
        else solve (x / (i + 1)) rest
let solve = solve 75

let () = Scanf.scanf "%d" @@ fun n ->
  Printf.printf "%d\n" @@
  solve @@
  List.map snd @@
  IntMap.bindings @@
  Array.fold_right (fun n ->
    (factorize n).fold @@ fun (p, n) ->
      IntMap.update p (fun m -> Some (n + Option.value ~default:0 m)))
  (Array.init n succ) IntMap.empty
