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 Rust (1.15.1) (judge verdict: Accepted)

use std::cmp::*;
use std::io::*;
const MOD: u64 = 1_000_000_007;
fn main() {
    let mut s: String = String::new();
    stdin().read_to_string(&mut s).ok();
    let mut itr = s.trim().split_whitespace();
    let n: u64 = itr.next().unwrap().parse().unwrap();

    let mut div = vec![0; 1010];
    for mut i in 2..n + 1 {
        let mut j = 2u64;
        while j * j <= i {
            while i % j == 0 {
                div[j as usize] += 1;
                i /= j;
            }
            j += 1;
        }
        div[i as usize] += 1;
    }

    let mut ans = 1u64;
    for i in 2..1005 {
        if div[i] > 0 {
            ans = ans * (div[i] + 1) % MOD;
        }
    }
    println!("{}", ans);
}