import Data.List( sort, group)
primes = 2:f [3] [3,5..]
 where f (x:xs) ys =	let
			    (ps, qs) = span (< x*x) ys
			in
			    ps ++ f (xs++ps) [z | z<-qs, z`mod`x/=0]

rpf n = let ps = takeWhile ((<=n).(^2)) primes
	in  if n==1 then [1] else go n ps
    where
	go 1 _	= []
	go i []	= [i]
	go i pp@(p:ps) = case i`divMod`p of
			(d,0)	-> p:go d pp
			_	-> go i ps 

main = do
    n_ <- readLn::IO Int
    print $ let
		ps = concatMap rpf [n_, n_-1..2]
		v=product $ map (toInteger . (+1) . length) $
				    group . sort $ ps
	    in	
		v `mod` 1000000007