Problem:
Score : 300 points

Problem Statement

You are given an integer N.
Find the number of the positive divisors of N!, modulo 10^9+7.

Constraints

1≤N≤10^3

Input

The input is given from Standard Input in the following format:

N

Output

Print the number of the positive divisors of N!, modulo 10^9+7.

Sample Input 1

3

Sample Output 1

4

There are four divisors of 3! =6: 1, 2, 3 and 6. Thus, the output should be 4.

Sample Input 2

6

Sample Output 2

30

Sample Input 3

1000

Sample Output 3

972926972

Solution in Haskell (GHC 8.8.3) (judge verdict: Accepted)

import qualified Data.IntMap as IM
main=print.solve=<<readLn
solve n=IM.foldr(\i s->(i+1)*s`mod`(10^9+7))1$foldr f IM.empty[2..n]
f k m=foldr(\i->IM.insertWith(+)i 1)m$g 2 k
g i k
  |k==1=[]
  |r==0=i:g i q
  |i*i>k=[k]
  |otherwise=g(i+1)k
  where(q,r)=divMod k i