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 7.10.3) (judge verdict: Wrong Answer)

import Data.List

main = do
  n <- readLn :: IO Int
  print $ (cnt $ concat $ [factorize x | x<-[1..n]])

factorize :: Int -> [Int]
factorize 1 = []
factorize n = 
  let 
    [m] = take 1 [i | i <-[2..], n `mod` i == 0]
  in 
    m : (factorize $ n `div` m)
  
cnt :: [Int] -> Int
cnt [] = 0
cnt xs = foldl1' (\a b -> a*b `mod` (10^9+7)) . map ((+1) . length) . group $ sort xs