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-----
3

-----Sample Output-----
4

There are four divisors of 3! =6: 1, 2, 3 and 6. Thus, the output should be 4.
[{"code": "N = int(input())\nmod = 1000000007\nfrom collections import Counter\nY = Counter()\nfor i in range(2, N+1):\n    M = i\n    for j in range(2,i+1):\n        while M % j == 0:\n            Y[j] += 1\n            M //= j\n\ndef product(X):\n    res = 1\n    for x in X:\n        res *= x + 1\n        res %= mod\n    return res    \n\nans = product(Y.values())\nprint(ans)", "passed": true, "time": 0.16, "memory": 14280.0, "status": "done"}, {"code": "# \u9ad8\u901f\u7d20\u56e0\u6570\u5206\u89e3\n# \"\"\"2\u4ee5\u4e0a\u306e\u6574\u6570n => [[\u7d20\u56e0\u6570, \u6307\u6570], ...]\u306e2\u6b21\u5143\u30ea\u30b9\u30c8\"\"\"\n\ndef factorization(n):\n    arr = []\n    temp = n\n    for i in range(2, int(-(-n**0.5//1))+1):\n        if temp%i==0:\n            cnt=0\n            while temp%i==0:\n                cnt+=1\n                temp //= i\n            arr.append([i, cnt])\n\n    if temp!=1:\n        arr.append([temp, 1])\n\n    if arr==[]:\n        arr.append([n, 1])\n\n    return arr\n\nn=int(input())\n\ncount=[0]*(n+1)\nfor i in range(1,n+1):\n    if i==1:\n        pass\n    else:\n        soinsuu_list=factorization(i)\n        for soinsu,jisu in soinsuu_list:\n            count[soinsu]+=jisu\nans=1\nmod=10**9+7\nfor i in count:\n    ans*=(i+1)\n    ans=ans%mod\nprint(ans)\n", "passed": true, "time": 0.32, "memory": 14232.0, "status": "done"}, {"code": "import math\nprime = [2, 3, 5]\nfor i in range(7, 1001, 2):\n  sqi = math.sqrt(i)\n  for j in prime:\n    if i % j == 0:\n      break\n    if sqi < j:\n      prime.append(i)\n      break\n\ndef legendre(n, p):\n  if n == 0:\n    return 0\n  else:\n    return n // p + legendre(n // p, p)\n\nN = int(input())\npower_of_prime = [legendre(N, p) for p in prime]\n\ncnt = 1\nfor i in range(len(power_of_prime)):\n  cnt = (cnt * (power_of_prime[i] + 1)) % 1000000007\nprint(cnt)\n", "passed": true, "time": 1.54, "memory": 14264.0, "status": "done"}, {"code": "from collections import deque\n\np=10**9+7\ndef primelist(n):\n    l=deque([2])\n    stack=deque()\n    t=1\n    for x in range(3,n+1,2):\n        flag=0\n        for y in tuple(l):\n            if x%y==0:\n                flag=1\n                break\n        if flag==0:\n            l.append(x)\n    return l\n\ndef main():\n    n=int(input())\n    l=primelist(n)\n    ans=1\n    while l:\n        q=l.pop()\n        s=0\n        c=1\n        while n//(q**c):\n            s+=n//(q**c)\n            c+=1\n        ans=ans*(s+1) % p\n    print(ans)\n\nmain()\n", "passed": true, "time": 0.14, "memory": 14124.0, "status": "done"}, {"code": "x = int(input())\na = []\ndef cont(y):\n    n = 0\n    while True:\n          if n - int(y ** (1/2)) + 1 == 0:\n               a.append(y)\n               break\n                \n          for j in range(2,int(y ** (1/2)) + 1):\n                 if y % j == 0:\n                    y = y // j\n                    a.append(j)\n                    n = 0\n                    break\n                 else:\n                    n = n + 1\n\nans = 1\nfor k in range(2, x + 1):\n    cont(k)\nfor h in range(2, x + 1):\n    ans = ans * (a.count(h) + 1)\n\nprint(ans % 1000000007)", "passed": true, "time": 0.18, "memory": 14228.0, "status": "done"}, {"code": "from collections import defaultdict\n\n\n# \u7d20\u56e0\u6570\u5206\u89e3\nd = defaultdict(int)\n\n\ndef prime_factorize(n):\n    while n % 2 == 0:\n        d[2] += 1\n        n //= 2\n    f = 3\n    while f * f <= n:\n        if n % f == 0:\n            d[f] += 1\n            n //= f\n        else:\n            f += 2\n    if n != 1:\n        d[n] += 1\n    return\n\n\nN = int(input())\nMOD = int(1e9) + 7\nans = 1\nfor i in range(1, N+1):\n    prime_factorize(i)\nfor v in d.values():\n    ans = ans * (v + 1) % MOD\nprint(ans)", "passed": true, "time": 0.18, "memory": 14204.0, "status": "done"}, {"code": "import math\nN = int(input())\nm = math.factorial(N)\nA = 1000*[1]\nans = 1\n\nfor n in range(2,1001):\n  while m%n==0:\n    m//=n\n    A[n]+=1\n\nfor a in A:\n  ans*=a\n\nprint(ans%(10**9+7))", "passed": true, "time": 0.32, "memory": 14272.0, "status": "done"}, {"code": "import collections\n\nn = int(input())\nmod = 10**9+7\n\ndef factorization(n):\n    arr = []\n    temp = n\n    for i in range(2, int(-(-n**0.5//1))+1):\n        if temp%i==0:\n            cnt=0\n            while temp%i==0:\n                cnt+=1\n                temp //= i\n            arr.append([i, cnt])\n    if temp!=1:\n        arr.append([temp, 1])\n    if arr==[]:\n        arr.append([n, 1])\n    return arr\n\nd = collections.defaultdict(int)\nfor i in range(2,n+1):\n    for j in factorization(i):\n        d[j[0]] += j[1]\n\nans = 1\nfor v in d.values():\n    ans *= (v+1)\nprint(ans%mod)", "passed": true, "time": 0.31, "memory": 14144.0, "status": "done"}, {"code": "import math\n\nn = int(input())\nif n == 1:\n    print((1))\n    return\ndp = [0] * (n+1)\nmod = 10**9+7\n\ndef sieve_of_erastosthenes(num):\n    input_list = [False if i % 2 == 0 or i % 3 == 0 or i % 5 == 0 else True for i in range(num)]\n    input_list[0] = input_list[1] = False\n    input_list[2] = input_list[3] = input_list[5] = True\n    sqrt = math.sqrt(num)\n\n    for serial in range(3, num, 2):\n\n        if serial >= sqrt:\n            return input_list\n\n        for s in range(serial ** 2, num, serial): \n            input_list[s] = False\n\nprime = sieve_of_erastosthenes(1000)\nprime = [i for i, t in enumerate(prime) if t]\n\nfor i in range(2, n+1):\n    v = i\n    while v < n+1:\n        dp[i] += 1\n        v += i\n\ndp2 = [0] * (n+1)\nfor p in prime:\n    v = p\n    k = 1\n    while v < n+1:\n        dp2[p] += dp[v]\n        v *= p\n        k += 1\n\nans = 1\nfor i in range(n+1):\n    ans = (ans * (dp2[i]+1)) % mod\nprint(ans)\n", "passed": true, "time": 0.18, "memory": 14248.0, "status": "done"}, {"code": "from collections import defaultdict\n\ndef prime_factorization(n):\n    arr=[]\n    temp=n\n    for i in range(2,int(n**0.5)+1):\n        if temp%i==0:\n            cnt=0\n            while temp%i==0:\n                cnt+=1\n                temp//=i\n            arr.append([i,cnt])\n    \n    if temp!=1:\n        arr.append([temp,1])\n    \n    if arr==[]:\n        arr.append([n,1])\n    \n    return arr\n\nN=int(input())\nmod=10**9+7\nprimes=defaultdict(int)\nfor n in range(1,N+1):\n    for num,cnt in prime_factorization(n):\n        primes[num]+=cnt\n\nans=1\nfor n,cnt in primes.items():\n    if n==1:\n        continue\n    ans*=cnt+1\n    ans%=mod\nprint(ans)", "passed": true, "time": 0.18, "memory": 14292.0, "status": "done"}, {"code": "from collections import defaultdict\n\nN = int(input())\n\nprime_counts = defaultdict(int)\n\nfor i in range(2, N + 1):\n    n = i\n    for p in prime_counts:\n        while True:\n            if n % p == 0:\n                prime_counts[p] += 1\n                n = n // p\n            else:\n                break\n    if n > 1:\n        prime_counts[n] += 1\n\nd = 1\nfor c in prime_counts.values():\n    d *= (1 + c)\nprint(d % (10 ** 9 + 7))", "passed": true, "time": 0.25, "memory": 14252.0, "status": "done"}, {"code": "mod = 1000000000 + 7\n\ndef factorization(n):\n    arr = []\n    temp = n\n    for i in range(2, int(-(-n ** 0.5 // 1)) + 1):\n        if temp % i == 0:\n            cnt = 0\n            while temp % i == 0:\n                cnt += 1\n                temp //= i\n            arr.append([i, cnt])\n    if temp != 1:\n        arr.append([temp, 1])\n    if arr == []:\n        arr.append([n, 1])\n    return arr\n\nn = int(input())\ndat = [0] * 2000 # \u7d04\u6570\u3068\u3057\u3066\u6c42\u3081\u3089\u308c\u305f\u3042\u308b\u6570\u306e\u5408\u8a08\n\n# N! \u306e\u5404\u8981\u7d20\u306e\u7d20\u56e0\u6570\u5206\u89e3\u3092\u3059\u308b\nres = 1\nfor i in range(1, n + 1):\n    d = factorization(i)\n    for j in range(len(d)):\n        dat[d[j][0]] += d[j][1]\n\nfor i in range(2, n + 1):\n    res *= (dat[i] + 1)\n    res %= mod\n\nprint(res)", "passed": true, "time": 0.16, "memory": 14300.0, "status": "done"}, {"code": "from math import factorial\n\nn = int(input())\nf = factorial(n)\n\nmod = 10 ** 9 + 7\n\ndef primes(n):\n    is_prime = [True] * (n + 1)\n    is_prime[0] = False\n    is_prime[1] = False\n    for i in range(2, int(n ** 0.5) + 1):\n        if not is_prime[i]:\n            continue\n        for j in range(i * 2, n + 1, i):\n            is_prime[j] = False\n    return [i for i in range(n + 1) if is_prime[i]]\n\nans = 1\nfor p in primes(n):\n    temp = 1\n    while f % p == 0:\n        temp += 1\n        f //= p\n    ans = (ans * temp) % mod\nprint(ans)\n", "passed": true, "time": 0.29, "memory": 14408.0, "status": "done"}, {"code": "import collections\n\nn = int(input())\nmod = 10**9 + 7\ndef factorization(n):\n    arr = []\n    temp = n\n    for i in range(2, int(-(-n**0.5//1))+1):\n        if temp%i==0:\n            cnt=0\n            while temp%i==0:\n                cnt+=1\n                temp //= i\n            arr.append([i, cnt])\n \n    if temp!=1:\n        arr.append([temp, 1])\n \n    if arr==[]:\n        arr.append([n, 1])\n \n    return arr\n\ntmp = collections.defaultdict(int)\n\nfor i in range(1, n+1):\n    for j , k in factorization(i):\n        tmp[j] += k\n\nans = 1\nfor tei, si in list(tmp.items()):\n    if tei == 1:\n        continue\n    else:\n        ans *= si + 1\n        ans %= mod\n\nprint(ans)\n", "passed": true, "time": 0.14, "memory": 14104.0, "status": "done"}, {"code": "N = int(input())\nmod = 10**9 + 7\n\ndef factorization(n):\n    arr, temp = [], n\n    for i in range(2, int(-(-n**0.5//1))+1):\n        if temp%i==0:\n            cnt=0\n            while temp%i==0:\n                cnt+=1\n                temp //= i\n            arr.append([i, cnt])\n    if temp!=1:\n        arr.append([temp, 1])\n    if arr==[]:\n        arr.append([n, 1])\n    return arr\n\n\nA = {}\nfor i in range(1, N+1):\n    arr = factorization(i)\n    for k, v in arr:\n        if k != 1:\n            if k not in A:\n                A[k] = v\n            else:\n                A[k] += v\n\nans = 1\nfor v in A.values():\n    ans *= v + 1\n    ans %= mod\n\nprint(ans)", "passed": true, "time": 0.14, "memory": 14168.0, "status": "done"}, {"code": "N = int(input())\nA = [a for a in range(2, N+1)]\nT = 1\nwhile len(A)>0:\n  X = A[0]\n  T *= sum(N//(X**i) for i in range(1, 11))+1\n  A = [a for a in A if a%A[0]]\nprint(T%(10**9+7))", "passed": true, "time": 0.15, "memory": 14364.0, "status": "done"}, {"code": "prime = [False] * 1001\n\nfor i in range(2,1001):\n\tif prime[i] == False:\n\t\tfor j in range(i*i,1001,i):\n\t\t\tprime[j]=True\n\nn = int(input())\n\ncnt = [0] * 1001\nfor i in range(2,n+1):\n\tfor j in range(2,n+1):\n\t\tif prime[j] == False:\n\t\t\tval = i\n\t\t\twhile val%j==0:\n\t\t\t\tcnt[j]+=1\n\t\t\t\tval/=j\n\nans=1\n\nfor x in cnt:\n\tans*=(x+1)\n\tans%=1000000007\n\nprint(ans)", "passed": true, "time": 0.2, "memory": 14132.0, "status": "done"}, {"code": "import collections\nn = int(input())\nx = []\ndef factorization(n):\n    d = []\n    while n % 2 == 0:\n        d.append(2)\n        n /= 2\n    f = 3\n    while f*f <= n:\n        if n % f == 0:\n            d.append(int(f))\n            n /= f\n        else:\n            f += 2\n    if n != 1:\n        d.append(n)\n    return d\n\nfor i in range(n, 1, -1):\n    x += factorization(i)\n\nc = collections.Counter(x)\nl = list(c.values())\nans = 1\n\nfor i in range(len(l)):\n    ans *= 1 + l[i]\n\nprint(ans % (7+10**9))", "passed": true, "time": 0.23, "memory": 14412.0, "status": "done"}, {"code": "n = int(input())\na = [1] * n\nans = 1\n\nfor i in range(1,n+1):\n    b = 2\n    \n    while i != 1:\n        if i % b == 0:\n            i //= b\n            a[b-1] += 1\n        else:\n            b += 1\n            \nfor i in a:\n    if 1 < i:\n        ans *= i\n        ans %= 10**9 + 7\n            \nprint(ans)", "passed": true, "time": 0.14, "memory": 14128.0, "status": "done"}, {"code": "mod=10**9+7\nimport math\nn=int(input())\nans=1\nl=[0]*n\nfor ii in range(2,n+1):\n  i=ii\n  for j in range(2,int(math.sqrt(i))+1):\n    if i%j==0:\n      cnt=0\n      while  i%j==0:\n        cnt+=1;i//=j\n      l[j-1]+=cnt\n  if i!=1:\n    l[i-1]+=1\nfor i in l:\n  ans*=(i+1)\n  ans%=mod\nprint(ans)\n", "passed": true, "time": 0.14, "memory": 14112.0, "status": "done"}, {"code": "def prime_factorize(n):\n    a = []\n    while n % 2 == 0:\n        a.append(2)\n        n //= 2\n    f = 3\n    while f * f <= n:\n        if n % f == 0:\n            a.append(f)\n            n //= f\n        else:\n            f += 2\n    if n != 1:\n        a.append(n)\n    return a\n\nN=int(input())\ntotal=1\nans=1\ninf=10**9+7\ntotal=[0]*1000\nfor i in range(1,N+1):\n    temp=prime_factorize(i)\n    for j in range(len(temp)):\n        total[temp[j]-1]+=1\n\n\nfor i in range(1000):\n    ans*=total[i]+1\n    ans%=inf\nprint(ans)", "passed": true, "time": 0.14, "memory": 14356.0, "status": "done"}, {"code": "import math\n\nn = int(input())\nif n == 1:\n    print((1))\n    return\ndp = [0] * (n+1)\nmod = 10**9+7\n\ndef sieve_of_erastosthenes(num):\n    input_list = [False if i % 2 == 0 or i % 3 == 0 or i % 5 == 0 else True for i in range(num)]\n    input_list[0] = input_list[1] = False\n    input_list[2] = input_list[3] = input_list[5] = True\n    sqrt = math.sqrt(num)\n\n    for serial in range(3, num, 2):\n\n        if serial >= sqrt:\n            return input_list\n\n        for s in range(serial ** 2, num, serial): \n            input_list[s] = False\n\nprime = sieve_of_erastosthenes(1000)\nprime = [i for i, t in enumerate(prime) if t]\n\nfor i in range(2, n+1):\n    v = i\n    while v < n+1:\n        dp[i] += 1\n        v += i\n\ndp2 = [0] * (n+1)\nfor p in prime:\n    v = p\n    k = 1\n    while v < n+1:\n        dp2[p] += dp[v]\n        v *= p\n        k += 1\n\nans = 1\nfor i in range(n+1):\n    ans = (ans * (dp2[i]+1)) % mod\nprint(ans)\n", "passed": true, "time": 0.18, "memory": 14124.0, "status": "done"}, {"code": "n = int(input())\n\narr = [0] * (n+1)\n\nfor i in range(1,n+1):\n    x = []\n    while i % 2 == 0:\n        x.append(2)\n        i = i // 2\n    f = 3\n    while f * f <= i:\n        if i % f == 0:\n            x.append(f)\n            i = i // f\n        else:\n            f += 2\n    if i != 1:\n        x.append(i)\n\n    for k in range(len(x)):\n        arr[x[k]] += 1\n\nans = 1\nfor i in range(len(arr)):\n    ans *= (arr[i] + 1)\nprint((ans % (10**9 + 7)))\n", "passed": true, "time": 0.14, "memory": 14136.0, "status": "done"}, {"code": "import math\nN = int(input())\nans = 1\nq = [1 for i in range(N + 1)]\nfor i in range(2,N + 1):\n    k = i\n    for i2 in range(2,i + 1):\n        while k % i2 == 0:\n            k /= i2\n            q[i2] += 1\n            \nfor i in range(N + 1):\n    ans *= q[i]\n    ans %= 10 ** 9 + 7\n\nprint(ans)", "passed": true, "time": 0.17, "memory": 14280.0, "status": "done"}, {"code": "N=int(input())\nl=[0]*1000\ndef divisor_enu(N):\n   l=[]\n   for i in range(2,int(N**0.5)+1):\n      cnt=0\n      if N%i==0:\n         while N%i==0:\n            cnt+=1\n            N//=i\n         l.append((i,cnt))\n   if N != 1:\n      l.append((N,1))\n   return l\nfor i in range(1,N+1):\n   s=divisor_enu(i)\n   for j in s:\n      l[j[0]]+=j[1]\nans=1\nmod=10**9+7\nfor i in l:\n   if 0<i:\n      ans=ans*(i+1)%mod\nprint(ans)", "passed": true, "time": 0.16, "memory": 14244.0, "status": "done"}, {"code": "n = int(input())\n\nji = {}\nans = 1\nm = 1000000007\nfor i in range(n):\n    tmp = i + 1\n    j = 2\n    while tmp != 1:\n        if tmp % j == 0:\n            if not j in ji:\n                ji[j] = 0\n            \n            ji[j] += 1\n            tmp /= j\n        else:\n            j += 1 \n\nfor i in list(ji.values()):\n    ans *= (i + 1)\n    ans %= m\n    \n\nprint(ans)\n", "passed": true, "time": 0.15, "memory": 14224.0, "status": "done"}, {"code": "n=int(input())\nd={}\nfor x in range(2,n+1):\n  while x%2<1:\n    x//=2\n    d[2]=d.get(2,0)+1\n  for i in range(3,int(x**0.5)+1,2):\n    while x%i<1:\n      x//=i\n      d[i]=d.get(i,0)+1\n    if x<2: break\n  if x>1: d[x]=d.get(x,0)+1\na=1\nfor v in d.values(): a=a*(v+1)%(10**9+7)\nprint(a)", "passed": true, "time": 0.15, "memory": 14084.0, "status": "done"}, {"code": "def make_prime_table(n):\n    sieve = list(range(n + 1))\n    sieve[0] = -1\n    sieve[1] = -1\n    for i in range(4, n + 1, 2):\n        sieve[i] = 2\n    for i in range(3, int(n ** 0.5) + 1, 2):\n        if sieve[i] != i:\n            continue\n        for j in range(i * i, n + 1, i * 2):\n            if sieve[j] == j:\n                sieve[j] = i\n    return sieve\n\n\ndef prime_factorize(n):\n    result = []\n    while n != 1:\n        p = prime_table[n]\n        e = 0\n        while n % p == 0:\n            n //= p\n            e += 1\n        result.append((p, e))\n    return result\n\n\nN = int(input())\n\nm = 1000000007\n\nprime_table = make_prime_table(N)\n\nt = [0] * (N + 1)\nfor i in range(2, N + 1):\n    for p, e in prime_factorize(i):\n        t[p] += e\n\nresult = 1\nfor i in range(2, N + 1):\n    if t[i] == 0:\n        continue\n    result = result * (t[i] + 1) % m\nprint(result)\n", "passed": true, "time": 0.75, "memory": 14340.0, "status": "done"}, {"code": "import bisect, collections, copy, heapq, itertools, math, string, sys\ninput = lambda: sys.stdin.readline().rstrip() \nsys.setrecursionlimit(10**7)\nINF = float('inf')\nMOD = 10 ** 9 + 7\ndef I(): return int(input())\ndef F(): return float(input())\ndef SS(): return input()\ndef LI(): return [int(x) for x in input().split()]\ndef LI_(): return [int(x)-1 for x in input().split()]\ndef LF(): return [float(x) for x in input().split()]\ndef LSS(): return input().split()\n\ndef sieve(n):\n    is_prime = [True for _ in range(n+1)]\n    is_prime[0] = False\n    is_prime[1] = False\n    for i in range(2, int(n**0.5)+1):\n        if is_prime[i]:\n            for j in range(i*2, n+1, i):\n                is_prime[j] = False\n    return [i for i in range(n+1) if is_prime[i]]\n\ndef primeFactorization(n, primes):\n    ans = []\n    temp = n\n    for p in primes:\n        while temp%p == 0:\n            ans.append(p)\n            temp //= p\n    if temp > 1:\n        ans.append(temp)\n    return collections.Counter(ans)\n\ndef resolve():\n    N = I()\n\n    primes = sieve(N)\n    cnt = collections.Counter()\n    \n    for i in range(2, N + 1):\n        pf = primeFactorization(i, primes)\n        for k, v in list(pf.items()):\n            cnt[k] += v\n\n    ans = 1\n    for i in list(cnt.values()):\n        ans *= (i + 1)\n        ans %= MOD\n\n    print(ans)\n\ndef __starting_point():\n    resolve()\n\n__starting_point()", "passed": true, "time": 0.15, "memory": 14188.0, "status": "done"}, {"code": "n = int(input())\nmod = 10**9+7\n\ndef factors(N):\n    factors = []\n    while N%2 == 0:\n        factors.append(2)\n        N //=2\n\n    for f in range(3, int(N**0.5)+ 1, 2):\n        while N%f == 0:\n            factors.append(f)\n            N //= f\n    if N != 1:\n        factors.append(N)\n    return factors\n\ncd = dict()\nfor i in range(1, n+1):\n    facs = factors(i)\n    for f in facs:\n        cd.setdefault(f, 0)\n        cd[f] += 1\n\nans = 1\nfor key, v in list(cd.items()):\n    ans *= (v+1)\n    ans %= mod\n\nprint(ans)\n", "passed": true, "time": 0.14, "memory": 14348.0, "status": "done"}, {"code": "# \u30a8\u30e9\u30c8\u30b9\u30c6\u30cd\u30b9\u306e\u7be9, \u7d20\u56e0\u6570\u5206\u89e3\ndef make_prime_table(n):\n    sieve = list(range(n + 1))\n    sieve[0] = -1\n    sieve[1] = -1\n    for i in range(2, int(n ** 0.5) + 1):\n        if sieve[i] != i:\n            continue\n        for j in range(i * i, n + 1, i):\n            if sieve[j] == j:\n                sieve[j] = i\n    return sieve\n\n\ndef prime_factorize(n):\n    result = []\n    while n != 1:\n        p = prime_table[n]\n        c = 0\n        while n % p == 0:\n            n //= p\n            c += 1\n        result.append((p, c))\n    return result\n\n\nN = int(input())\n\nm = 1000000007\n\nprime_table = make_prime_table(N)\n\nt = [0] * (N + 1)\nfor i in range(2, N + 1):\n    for p, e in prime_factorize(i):\n        t[p] += e\n\nresult = 1\nfor i in range(2, N + 1):\n    if t[i] == 0:\n        continue\n    result = result * (t[i] + 1) % m\nprint(result)\n", "passed": true, "time": 0.16, "memory": 14164.0, "status": "done"}, {"code": "n = int(input())\ndiv_map = dict()\nmod = 10 ** 9 + 7\n\nfor i in range(1, n + 1):\n    is_prime_number = True\n    for j in range(2, int(i ** (1 / 2)) + 1):\n        if i % j == 0:\n            is_prime_number = False\n            break\n    if is_prime_number:\n        if i not in div_map:\n            div_map[i] = 1\n        else:\n            div_map[i] += 1\n    else:\n        j = 2\n        while i != 1:\n            if i % j == 0:\n                if j not in div_map:\n                    div_map[j] = 1\n                else:\n                    div_map[j] += 1\n                i //= j\n            else:\n                j += 1\n\n\nres = 1\ndiv_map[1] = 0\nfor key, value in list(div_map.items()):\n    res = res * (value + 1) % mod\n\nprint((res % mod))\n", "passed": true, "time": 0.16, "memory": 14268.0, "status": "done"}, {"code": "n = int(input())\n\nji = {}\nans = 1\nfor i in range(n):\n    tmp = i + 1\n    j = 2\n    while tmp != 1:\n        if tmp % j == 0:\n            if not j in ji:\n                ji[j] = 0\n            \n            ji[j] += 1\n            tmp /= j\n        else:\n            j += 1 \n\nfor i in list(ji.values()):\n    ans *= (i + 1)\n\nprint((ans % 1000000007))\n", "passed": true, "time": 0.34, "memory": 14300.0, "status": "done"}, {"code": "n = int(input())\ncounter = [0]*(n+1)\nfor i in range(2, n+1):\n    num = i\n    j = 2\n    while j*j <= num:\n        cnt = 0\n        while num%j == 0:\n            counter[j] += 1\n            num //= j\n        j += 1\n    if num != 1:\n        counter[num] += 1\nans = 1\nfor i in range(n+1):\n    if counter[i] > 0:\n        ans *= counter[i] + 1\n        ans %= int(1e9+7)\nprint(ans)\n        \n", "passed": true, "time": 0.16, "memory": 14120.0, "status": "done"}, {"code": "#!/usr/bin/env python3\n\nn = int(input())\nmod = 10**9+7\n\nis_prime = [True for _ in range(1100)]\nis_prime[0] = is_prime[1] = False\nfor i in range(2, 1100):\n    if not is_prime[i]: continue\n    for j in range(i*i, 1100, i): \n        is_prime[j] = False\n\nind = []\n\nfor p in range(2, 1100):\n    if is_prime[p]:\n        cnt = 0 \n        for m in range(2, n+1):\n            while m%p == 0:\n                m //= p\n                cnt += 1\n        if cnt != 0:\n            ind.append(cnt)\n\n#print('ind =', ind)\nans = 1 \nfor i in range(len(ind)):\n    ans *= (ind[i]+1)\n\nprint((ans%mod))\n", "passed": true, "time": 0.17, "memory": 14224.0, "status": "done"}, {"code": "import math\nn=int(input())\nmod=10**9+7\nans=1\ncnt=[0]*1000\nfor i in range(2,n+1):\n    x=i\n    for j in range(2,int(math.sqrt(n))+1):\n        while x%j==0:\n            cnt[j]+=1\n            x/=j\n    if x!=1:\n        cnt[int(x)]+=1\nfor i in cnt:\n    if i!=0:\n        ans*=(i+1)\n        ans%=mod\nprint(int(ans))", "passed": true, "time": 0.22, "memory": 14124.0, "status": "done"}, {"code": "from collections import Counter\n\ndef factor(n):\n    Ret = []\n    for i in range(2, n + 1):\n        while n % i == 0:\n            n = n // i\n            Ret.append(i)\n    if len(Ret) == 0:\n        return [n, ]\n    else:\n        return Ret\n\nn = int(input())\nfact = []\n\nfor i in range(2, n + 1):\n    fact += factor(i)\n\nans = 1\nfor k, v in Counter(fact).items():\n    ans *= v + 1\n    ans %= 10**9 + 7\nprint(ans)", "passed": true, "time": 0.24, "memory": 14192.0, "status": "done"}, {"code": "MOD = 10**9+7\nmemo = [0]*10000\n\nN = int(input())\n\ndef primeLst(k):\n  acc = []\n  if k == 1:\n    return acc\n  f = 2\n  while f * f <= k:\n    if k % f == 0:\n      acc.append(f)\n      k //= f\n    else:\n      f += 1\n  if k != 1:\n    acc.append(k)\n  return acc\n\nfor i in range(N):\n  l = primeLst(i+1)\n  for x in l:\n    memo[x] += 1\n\nres = 1\nfor i in range(1,N):\n  res *= memo[i+1] + 1\n  res %= MOD\n\nprint(res)", "passed": true, "time": 0.23, "memory": 14316.0, "status": "done"}, {"code": "N = int(input())\nfrom collections import defaultdict\narr = defaultdict(int)\nfor i in range(2,N+1):\n    temp = i\n    f = True\n    for j in range(2, int(-(-i**0.5//1))+1):\n        if temp%j==0:\n            cnt=0\n            while temp%j==0:\n                cnt+=1\n                temp //= j\n            f = False\n            arr[j] += cnt\n    if temp!=1:\n        f = False\n        arr[temp] += 1\n    if f:\n        arr[i] += 1\nans = 1\nfor i in arr.values():\n    ans *= i+1\n    ans %= 10**9 + 7\nprint(ans)", "passed": true, "time": 0.15, "memory": 14304.0, "status": "done"}, {"code": "import sys\nfrom collections import Counter\n\nread = sys.stdin.read\nreadline = sys.stdin.readline\nreadlines = sys.stdin.readlines\nsys.setrecursionlimit(10 ** 9)\nINF = 1 << 60\nMOD = 1000000007\n\n\ndef main():\n    N = int(readline())\n\n    N_MAX = N\n\n    min_factor = list(range(N_MAX + 1))\n    min_factor[2::2] = [2] * (N_MAX // 2)\n    for i in range(3, int(N_MAX ** 0.5) + 2, 2):\n        if min_factor[i] != i:\n            continue\n        for j in range(i * i, N_MAX + 1, 2 * i):\n            if min_factor[j] > i:\n                min_factor[j] = i\n\n    def prime_factorize_fast(n):\n        a = Counter()\n        while n != 1:\n            a[min_factor[n]] += 1\n            n //= min_factor[n]\n\n        return a\n\n    factors = Counter()\n\n    for n in range(2, N + 1):\n        factors += prime_factorize_fast(n)\n\n    ans = 1\n    for v in list(factors.values()):\n        ans = ans * (v + 1) % MOD\n\n    print(ans)\n    return\n\n\ndef __starting_point():\n    main()\n\n__starting_point()", "passed": true, "time": 0.16, "memory": 14256.0, "status": "done"}, {"code": "def PrimeDecomp(N,ConcFlag):\n    if ConcFlag:\n        if N<=1:\n            return [1],1\n        else:\n            I = 2\n            PrimeDec = []\n            DivCount = 1\n            while I*I<=N:\n                Cnt = 0\n                while N%I==0:\n                    N //= I\n                    PrimeDec.append(I)\n                DivCount *= (Cnt+1)\n                I += 1\n            if N>=2:\n                PrimeDec.append(N)\n                DivCount *= 2\n            return PrimeDec,DivCount        \n    else:\n        if N<=1:\n            return [1],[1],1\n        else:\n            I = 2\n            PrimeDec = []\n            PrimeCnt = []\n            DivCount = 1\n            while I*I<=N:\n                Cnt = 0\n                while N%I==0:\n                    N //= I\n                    Cnt += 1\n                if Cnt>=1:\n                    PrimeDec.append(I)\n                    PrimeCnt.append(Cnt)\n                    DivCount *= (Cnt+1)\n                I += 1\n            if N>=2:\n                PrimeDec.append(N)\n                PrimeCnt.append(1)\n                DivCount *= 2\n            return PrimeDec,PrimeCnt,DivCount\n\ndef DivisorFactorial(N,FactDec,FactCnt,MemoFlag,Mod,ModFlag):\n    if MemoFlag:\n        if N<=1:\n            FDivCnt = 1\n            return FactDec,FactCnt,FDivCnt\n        else:\n            PrimeDec,PrimeCnt,_ = PrimeDecomp(N,False)\n            for TP in range(0,len(PrimeDec)):\n                if PrimeDec[TP] in set(FactDec):\n                    FactCnt[FactDec.index(PrimeDec[TP])] += PrimeCnt[TP]\n                else:\n                    FactDec.append(PrimeDec[TP])\n                    FactCnt.append(PrimeCnt[TP])\n            FDivCnt = 1\n            for TF in FactCnt:\n                FDivCnt = [FDivCnt*(TF+1),(FDivCnt*(TF+1))%Mod][ModFlag]\n            return FactDec,FactCnt,FDivCnt\n    else:\n        if N<=1:\n            FDivCnt = 1\n            return FactDec,FactCnt,FDivCnt\n        else:\n            for TN in range(2,N+1): \n                PrimeDec,PrimeCnt,_ = PrimeDecomp(TN,False)\n                for TP in range(0,len(PrimeDec)):\n                    if PrimeDec[TP] in set(FactDec):\n                        FactCnt[FactDec.index(PrimeDec[TP])] += PrimeCnt[TP]\n                    else:\n                        FactDec.append(PrimeDec[TP])\n                        FactCnt.append(PrimeCnt[TP])\n            FDivCnt = 1\n            for TF in FactCnt:\n                FDivCnt = [FDivCnt*(TF+1),(FDivCnt*(TF+1))%Mod][ModFlag]\n            return FactDec,FactCnt,FDivCnt\nFactDec,FactCnt,FDivCnt = DivisorFactorial(int(input()),[],[],False,10**9+7,True)\nprint(FDivCnt)", "passed": true, "time": 0.15, "memory": 14396.0, "status": "done"}, {"code": "import math\nimport collections\n\nn = int(input())\n\nfactorial = 1\ndivisor = []\nans = 1\n\n\n# \u7d20\u6570\u3092\u6c42\u3081\u308b\u95a2\u6570\ndef get_prime(num):\n    if num <= 1:\n        return\n    for i in range(2, num+1):\n        while num % i == 0:\n            divisor.append(i)\n            num //= i\n\n\n# \u7d04\u6570\u306e\u6570 = (\u7d20\u6570x\u306e\u500b\u6570+1)(\u7d20\u6570y\u306e\u500b\u6570+1)(\u7d20\u6570z\u306e\u500b\u6570+1)...\n# \u65b9\u91dd\uff1a\u5165\u529b\u5024\u3092\u7d20\u56e0\u6570\u5206\u89e3\u3057\u3001\u5404\u7d20\u56e0\u6570\u306e\u500b\u6570\u3092\u6c42\u3081\u308b\n\n# n-i\u306e\u7d20\u56e0\u6570\u3092\u6c42\u3081\u308b\nfor j in range(2, n+1):\n    get_prime(j)\n\n# print(divisor)\n\n# \u5404\u7d20\u56e0\u6570\u306e\u7d44\u307f\u5408\u308f\u305b\u6570\u3092\u6c42\u3081\u308b\ncount = collections.Counter(divisor)\n\nfor k in count.most_common():\n    temp = list(k)[1]\n    ans = ans * (temp + 1)\n\nans = ans % (10 ** 9 + 7)\n\nprint(ans)", "passed": true, "time": 0.25, "memory": 14288.0, "status": "done"}, {"code": "from math import sqrt\nn = int(input())\nd = {}\nmod = 10**9+7\nfor i in range(1,n):\n    m = i+1\n\n    for j in range(2, int(sqrt(i+1))+1):\n        if m%j==0:\n            while m%j==0:\n                d[j] = d.get(j, 0)+1\n                m //= j\n    if m>1:\n        d[m] = d.get(m,0)+1\n    \nans = 1\nfor i in d:\n    ans *= d[i]+1\n    ans %= mod\nprint(ans)", "passed": true, "time": 0.14, "memory": 14100.0, "status": "done"}, {"code": "N = int(input())\n\nmod = 10 ** 9 + 7\n\n\ndef primes(n):\n    is_prime = [True] * (n + 1)\n    is_prime[0] = False\n    is_prime[1] = False\n    for i in range(2, int(n**0.5) + 1):\n        if not is_prime[i]:\n            continue\n        for j in range(i * 2, n + 1, i):\n            is_prime[j] = False\n    return [i for i in range(n + 1) if is_prime[i]]\n\n\nL = primes(N)\n\nans = [0] * (N + 1)\nfor i in range(2, N + 1):\n    for j in L:\n        if i < j:\n            break\n        while True:\n            if i % j == 0:\n                i //= j\n                ans[j] += 1\n            else:\n                break\n\nans_num = 1\nfor i in range(2, N + 1):\n    if ans[i] >= 1:\n        ans_num *= ans[i] + 1 % mod\nprint((ans_num % mod))\n", "passed": true, "time": 0.15, "memory": 14272.0, "status": "done"}, {"code": "n = int(input())\ns = 1\nans = 1\nfor i in range(1, n+1):\n  s *= i\nfor i in range(2, n+1):\n  k = 1\n  while s % i == 0:\n    s = s // i\n    k += 1\n  ans *= k\nprint(ans % (10 ** 9 + 7))", "passed": true, "time": 0.15, "memory": 14120.0, "status": "done"}, {"code": "d={}\nfor i in range(int(input())+1):\n  for j in d:\n    while i%j<1: d[j]+=1; i//=j\n  if i>1: d[i]=2\na=1\nfor v in d.values(): a=a*v%(10**9+7)\nprint(a)", "passed": true, "time": 0.15, "memory": 14072.0, "status": "done"}, {"code": "def erat(n):\n    n+=1\n    l=[1 for _ in range(n)]\n    l[0],l[1]=0,0\n    for i in range(4,n,2):\n        l[i]=0\n    for i in range(9,n,6):\n        l[i]=0\n    for i in range(6,n,6):\n        if l[i-1]:\n            for j in range((i-1)*(i-1),n,i-1):\n                l[j]=0\n        if l[i+1]:\n            for j in range((i+1)*(i+1),n,i+1):\n                l[j]=0\n    return l\nprime=[]\nfor i in range(1001):\n    if erat(1000)[i]:\n        prime.append(i)\nn=int(input())\nu=[0]*1001\nfor i in range(1,n+1):\n    for j in prime:\n        while i%j==0:\n            i//=j\n            u[j]+=1\nans=1\nfor i in u:\n    ans*=i+1\nprint(ans%(10**9+7))", "passed": true, "time": 0.46, "memory": 14164.0, "status": "done"}, {"code": "from operator import mul\nfrom functools import reduce\ndef PrimeDecomp(N,ConcFlag):\n    if ConcFlag:\n        if N<=1:\n            return [1],1\n        else:\n            I = 2\n            PrimeDec = []\n            DivCount = 1\n            while I*I<=N:\n                Cnt = 0\n                while N%I==0:\n                    N //= I\n                    PrimeDec.append(I)\n                DivCount *= (Cnt+1)\n                I += 1\n            if N>=2:\n                PrimeDec.append(N)\n                DivCount *= 2\n            return PrimeDec,DivCount        \n    else:\n        if N<=1:\n            return [1],[1],1\n        else:\n            I = 2\n            PrimeDec = []\n            PrimeCnt = []\n            DivCount = 1\n            while I*I<=N:\n                Cnt = 0\n                while N%I==0:\n                    N //= I\n                    Cnt += 1\n                if Cnt>=1:\n                    PrimeDec.append(I)\n                    PrimeCnt.append(Cnt)\n                    DivCount *= (Cnt+1)\n                I += 1\n            if N>=2:\n                PrimeDec.append(N)\n                PrimeCnt.append(1)\n                DivCount *= 2\n            return PrimeDec,PrimeCnt,DivCount\n\ndef DivisorFactorial(N,FactDec,FactCnt,MemoFlag):\n    if MemoFlag:\n        if N<=1:\n            FDivCnt = 1\n            return FactDec,FactCnt,FDivCnt\n        else:\n            PrimeDec,PrimeCnt,_ = PrimeDecomp(N,False)\n            for TP in range(0,len(PrimeDec)):\n                if PrimeDec[TP] in set(FactDec):\n                    FactCnt[FactDec.index(PrimeDec[TP])] += PrimeCnt[TP]\n                else:\n                    FactDec.append(PrimeDec[TP])\n                    FactCnt.append(PrimeCnt[TP])\n            FDivCnt = reduce(mul,[(T+1) for T in FactCnt])\n            return FactDec,FactCnt,FDivCnt\n    else:\n        if N<=1:\n            FDivCnt = 1\n            return FactDec,FactCnt,FDivCnt\n        else:\n            for TN in range(2,N+1): \n                PrimeDec,PrimeCnt,_ = PrimeDecomp(TN,False)\n                for TP in range(0,len(PrimeDec)):\n                    if PrimeDec[TP] in set(FactDec):\n                        FactCnt[FactDec.index(PrimeDec[TP])] += PrimeCnt[TP]\n                    else:\n                        FactDec.append(PrimeDec[TP])\n                        FactCnt.append(PrimeCnt[TP])\n            FDivCnt = reduce(mul,[(T+1) for T in FactCnt])\n            return FactDec,FactCnt,FDivCnt\n          \nN = int(input())\nFactDec,FactCnt,FDivCnt = DivisorFactorial(N,[],[],False)\nprint(FDivCnt%(10**9+7))", "passed": true, "time": 0.16, "memory": 14280.0, "status": "done"}, {"code": "import sys\nN = int(input())\n\ndef prime_factorize(n):\n    a = []\n    while n % 2 == 0:\n        a.append(2)\n        n //= 2\n    f = 3\n    while f * f <= n:\n        if n % f == 0:\n            a.append(f)\n            n //= f\n        else:\n            f += 2\n    if n != 1:\n        a.append(n)\n    return a\n\nres = []\nresult = 1\nfor I in range(2,N+1):\n    res += prime_factorize(I)\nfor J in set(res):\n    result *= res.count(J) + 1\nprint(result % (10**9+7))", "passed": true, "time": 0.17, "memory": 14128.0, "status": "done"}, {"code": "import sys;input = lambda : sys.stdin.readline()\nimport collections\nN = int(input())\nd = collections.Counter()\nif N == 1:\n    print(1)\nelse:\n    for n in range(2, N + 1):\n        while n % 2 == 0:\n            d[2] += 1\n            n //= 2\n        i = 3\n        while i * i <= n:\n            if n % i == 0:\n                while n % i == 0:\n                    d[i] += 1\n                    n //= i\n            i += 2\n        if n > 1:\n            d[n] += 1\n    ans = 1\n    for k, v in d.items():\n        ans = (ans * (v + 1)) % 1000000007\n    print(ans)", "passed": true, "time": 0.14, "memory": 14272.0, "status": "done"}, {"code": "MOD = 10 ** 9 + 7\ndef prime_factorize(n):\n    a = []\n    while n % 2 == 0:\n        a.append(2)\n        n //= 2\n    f = 3\n    while f * f <= n:\n        if n % f == 0:\n            a.append(f)\n            n //= f\n        else:\n            f += 2\n    if n != 1:\n        a.append(n)\n    return a\nn = int(input())\ncnt = [0]*10000\nsum = []\nfor i in range(2, n + 1):\n    sum += prime_factorize(i)\n\nfor x in sum:\n    cnt[x] += 1\nans = 1\nfor i in range(len(cnt)):\n    if cnt[i] > 0:\n        ans *= (cnt[i]+1)\nprint(ans % MOD)", "passed": true, "time": 0.14, "memory": 14124.0, "status": "done"}, {"code": "from collections import Counter\ndef f(n):\n    a = []\n    while n % 2 == 0:\n        a.append(2)\n        n //= 2\n    f = 3\n    while f * f <= n:\n        if n % f == 0:\n            a.append(f)\n            n //= f\n        else:\n            f += 2\n    if n != 1:\n        a.append(n)\n    return a\n\nn = int(input())\nif n == 1:\n    print(1)\n    return\nd = {}\nmod = 10**9+7\nd[2] = 1\nfor i in range(3, n+1):\n    x = f(i)\n    c = Counter(x)\n    for j in c.keys():\n        if j not in d:\n            d[j] = c[j]\n        else:\n            d[j] += c[j]\n        d[j] = d[j] % mod\nans = 1\nfor i in d.keys():\n    ans *= d[i]+1\nprint(ans%mod)", "passed": true, "time": 0.14, "memory": 14268.0, "status": "done"}, {"code": "import math\n\ndef factorization(n):\n    arr = []\n    temp = n\n    for i in range(2, int(-(-n**0.5//1))+1):\n        if temp%i==0:\n            cnt=0\n            while temp%i==0:\n                cnt+=1\n                temp //= i\n            arr.append([i, cnt])\n\n    if temp!=1:\n        arr.append([temp, 1])\n\n    if arr==[]:\n        arr.append([n, 1])\n\n    return arr\n\nn = int(input())\n\nex = [1]*1001\nans = 1\n\nfor i in range(2, n+1):\n    n_fact = factorization(i)\n    for j, k in n_fact:\n        ex[j] += k\n\nfor i in ex:\n    ans *= i\n    ans %= (10**9+7)\nprint(ans)", "passed": true, "time": 0.14, "memory": 14256.0, "status": "done"}, {"code": "from collections import defaultdict\nmod = 10**9+7\n\ndef factorize(n):\n    out=[]\n    i = 2\n    while 1:\n        if n%i==0:\n            out.append(i)\n            n //= i\n        else:\n            i += 1\n        if n == 1:break\n        if i > int(n**.5+3):\n            out.append(n)\n            break\n    \n    return out\n  \nN=int(input())\n\nif N==1:\n  print(1)\n  return\n\ncount = defaultdict(int)\nfor i in range(2,N+1):\n  f = factorize(i)\n  for j in range(len(f)):\n    count[f[j]] += 1\n    \nans = 1\nfor k in count.keys():\n  ans *= count[k]+1 % mod\n  \nprint(ans % mod)", "passed": true, "time": 0.15, "memory": 14252.0, "status": "done"}, {"code": "import collections\nn = int(input())\nt = 1\nfor i in range(1,n+1):\n    t *= i\ndef prime_factorize(n):\n    a = []\n    while n % 2 == 0:\n        a.append(2)\n        n //= 2\n    f = 3\n    while f * f <= n:\n        if n % f == 0:\n            a.append(f)\n            n //= f\n        else:\n            f += 2\n    if n != 1:\n        a.append(n)\n    return a\n\nc = collections.Counter(prime_factorize(t))\nans = 1\nfor _, v in c.items():\n    ans *= (v + 1)\nprint(ans%(10**9+7))", "passed": true, "time": 0.14, "memory": 14336.0, "status": "done"}, {"code": "def prime_fact(N):\n  M = N\n  primes = []\n  K = 2\n\n  while K*K <= M:\n    while N%K == 0:\n      primes.append(K)\n      N = N//K\n    K += 1\n  \n  if N != 1:\n    primes.append(N)\n\n  return primes\n\nN = int(input())\nnums = [0]*1000\nans = 1\n\nfor i in range(2,N+1):\n  P = prime_fact(i)\n  for j in range(len(P)):\n    nums[P[j]-1] += 1\n\nfor k in range(1000):\n  ans = ans*(nums[k]+1)%1000000007\n\nprint(ans)", "passed": true, "time": 0.16, "memory": 14136.0, "status": "done"}, {"code": "import math\nn=int(input())\nans=1\ndic={}\nfor i in range(2,n+1):\n    tmp=i\n    for j in range(2,i+1):\n        while tmp%j==0:\n            tmp//=j\n            if j in dic:\n                dic[j]+=1\n            else:\n                dic[j]=1\nfor v in dic.values():\n    ans=(ans*(v+1))%(10**9+7)\nprint(ans)", "passed": true, "time": 0.15, "memory": 14096.0, "status": "done"}, {"code": "def factrial(n): # \u8a66\u3057\u5272\u308a\u7b97\u6cd5\u3067\u7d20\u56e0\u6570\u5206\u89e3\n  factors = []\n  while n%2 == 0:\n    factors.append(2)\n    n //= 2\n    \n  for i in range(3, int(n**0.5)+1):\n    while n%i == 0:\n      factors.append(i)\n      n //= i\n      \n  if n != 1: factors.append(n)\n  \n  return factors\n\n\nn = int(input())\nmod = 10**9+7\n\nd = {}\nfor i in range(1, n+1): # 1\u301cn\u307e\u3067\u306e\u5404\u5024\u3092\u7d20\u56e0\u6570\u5206\u89e3\n  fac = factrial(i)\n  for j in fac: # \u5206\u89e3\u3057\u3066\u53d6\u5f97\u3057\u305f\u8981\u7d20\u306e\u56de\u6570\u3092\u30ab\u30a6\u30f3\u30c8\n    if j in d: d[j] += 1\n    else: d[j] = 1\n\nans = 1\nfor k,v in d.items():\n  # \u53d6\u5f97\u3057\u305f\u8981\u7d20\u306b1\u3092\u8db3\u3057\u305f\u5024\u3092\u5408\u8a08\u5024\u306b\u304b\u3051\u5408\u308f\u305b\u308b\n  # \u7d04\u6570\u3068\u3057\u3066\"1\"\u306f\u30ab\u30a6\u30f3\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u70ba\u3001\u3053\u306e\u30bf\u30a4\u30df\u30f3\u30b0\u3067\u8ffd\u52a0\u3059\u308b\n  ans *= (v+1) \n  ans %= mod\nprint(ans)", "passed": true, "time": 0.14, "memory": 14124.0, "status": "done"}, {"code": "mod = 1000000000 + 7\n\ndef factorization(n):\n    arr = []\n    temp = n\n    for i in range(2, int(-(-n ** 0.5 // 1)) + 1):\n        if temp % i == 0:\n            cnt = 0\n            while temp % i == 0:\n                cnt += 1\n                temp //= i\n            arr.append([i, cnt])\n    if temp != 1:\n        arr.append([temp, 1])\n    if arr == []:\n        arr.append([n, 1])\n    return arr\n\nn = int(input())\ndat = [0] * 2000 # \u7d04\u6570\u3068\u3057\u3066\u6c42\u3081\u3089\u308c\u305f\u3042\u308b\u6570\u306e\u5408\u8a08\n\n# N! \u306e\u5404\u8981\u7d20\u306e\u7d20\u56e0\u6570\u5206\u89e3\u3092\u3059\u308b\nres = 1\nfor i in range(1, n + 1):\n    d = factorization(i)\n    for j in range(len(d)):\n        dat[d[j][0]] += d[j][1]\n\nfor i in range(2, n + 1):\n    res *= (dat[i] + 1)\n    res %= mod\n\nprint(res)", "passed": true, "time": 0.2, "memory": 14304.0, "status": "done"}, {"code": "import math\nN = int(input())\nmod = 1000000007\nx = [1 for _ in range(1001)]\nSum = 1\n\nfor i in range(1, N + 1):\n    z = i\n    for j in range(2, int(math.sqrt(N)) + 1):\n        while z % j == 0:\n            x[j] += 1\n            z = int(z / j)\n    if z != 1:\n        x[z] += 1\n\nfor i in x:\n    Sum *= i\n    Sum %= mod\n\nprint(Sum)\n", "passed": true, "time": 0.14, "memory": 14268.0, "status": "done"}, {"code": "import math\nurl = \"https://atcoder.jp//contests/abc052/tasks/arc067_a\"\n\n\ndef get_list_eratosthenes(n):\n    if n < 2:\n        return [0]*(n+1)\n    prime = [1]*(n+1)\n    prime[0] = prime[1] = 0\n    for i in range(2, int(n**0.5) + 1):\n        if not prime[i]: continue\n        for j in range(i * 2, n + 1, i):\n            prime[j] = 0\n    return prime\n\n\ndef main():\n    N = int(input())\n    tmp = N\n    primes = get_list_eratosthenes(N)\n    ans = 1\n    for p in range(2, N+1):\n        if primes[p] == 0: continue\n        cur = p\n        num = 0\n        while cur <= N:\n            num += N // cur\n            cur *= p\n        ans *= (num + 1)\n        ans %= 10**9+7\n    print(ans)\n\n\n\ndef __starting_point():\n    main()\n\n__starting_point()", "passed": true, "time": 0.14, "memory": 14284.0, "status": "done"}, {"code": "n = int(input())\nis_prime = [True] * 1005\nMOD = 10 ** 9 + 7\nis_prime[0] = is_prime[1] = False\nfactors = []\nfor i in range(2, n + 1):\n    if is_prime[i]:\n        cnt = 0\n        for j in range(i * i, n + 1, i):\n            is_prime[j] = False\n        i_init = i\n        while i <= n:\n            cnt += n // i\n            i *= i_init\n        factors.append(cnt)\nans = 1\nfor x in factors:\n    ans = ans * (x + 1) % MOD\nprint(ans)", "passed": true, "time": 0.32, "memory": 14084.0, "status": "done"}, {"code": "import sys\nimport math\nn = int(input())\nif n == 1:\n  print(1)\n  return\nprime_list = []\n    #2\u304b\u3089n\u307e\u3067\u306e\u6570\u5b57\u3092search_list\u306b\u5165\u308c\u308b\nsearch_list = list(range(2,n+1))\nwhile True:\n      #search_list\u306e\u5148\u982d\u306e\u5024\u304c\u221an\u306e\u5024\u3092\u8d85\u3048\u305f\u3089\u51e6\u7406\u7d42\u4e86\n      if search_list[0] > math.sqrt(n):\n        #prime_list\u306bsearch_list\u3092\u7d50\u5408\n          prime_list.extend(search_list)\n          break\n      else:\n        #search_list\u306e\u5148\u982d\u3092prime_list\u306b\u5165\u308c\u308b\n          head_num = search_list[0]\n          prime_list.append(head_num)\n        #search_list\u306e\u5148\u982d\u3092pop\u3059\u308b\n          search_list.pop(0)\n        #head_num\u306e\u500d\u6570\u3092\u53d6\u308a\u9664\u304f\n          search_list = [num for num in search_list if num % head_num != 0]\n#print(prime_list)\n########\u3053\u3053\u304b\u3089\u672c\u554f\u3092\u89e3\u304f#########\nans = 1\nfor x in prime_list:\n  tmp = 0\n  nl = 1\n  while(x**nl <= n):\n    tmp += n//(x**nl)\n    nl += 1\n  ans *= tmp+1\nif ans >= 10**9+7:\n  ans %= (10**9+7)\nprint(ans)", "passed": true, "time": 0.15, "memory": 14328.0, "status": "done"}, {"code": "MOD = 10 ** 9 + 7\n\ndef sieve(n):\n    srn = int(n ** 0.5) + 1\n    f = [False] * (srn + 1)\n    res = []\n    for i in range(2, srn + 1):\n        if f[i]:\n            continue\n        res.append(i)\n        for j in range(2 * i, srn + 1, i):\n            f[j] = True\n    return res\n\ndef trial_division(n):\n    res = dict()\n    for i in range(2, n+1):\n        m = i\n        for p in pn:\n            while m % p == 0:\n                res[p] = res.get(p, 0) + 1\n                m //= p\n            if m == 1:\n                break\n        if m > 1:\n            res[m] = res.get(m, 0) + 1\n    return res\n\nN = int(input())\npn = sieve(N)\nfn = trial_division(N)\nres = 1\nfor f in fn.values():\n    res *= (f + 1)\n    res %= MOD\nprint(res)", "passed": true, "time": 0.14, "memory": 14252.0, "status": "done"}, {"code": "n = int(input())\nprime_lst = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]\nlst = [0 for _ in range(n)]\nfor i in range(1, n + 1):\n    a = i\n    for num in prime_lst:\n        while a % num == 0:\n            lst[num - 1] += 1\n            a //= num\n    if a != 1:\n        lst[a - 1] += 1\nans = 1\nMOD = 10 ** 9 + 7\nfor num in lst:\n    ans *= (num + 1)\n    ans %= MOD\nprint(ans)", "passed": true, "time": 0.24, "memory": 14256.0, "status": "done"}, {"code": "#!/usr/bin/env python3\nimport sys\nfrom functools import reduce\n\nMOD = 1000000007  # type: int\n\n\ndef solve(N: int):\n    from itertools import chain\n    from collections import Counter\n    from functools import reduce\n    pu = PrimeUtil(N+1)\n    c = Counter(chain.from_iterable(pu.factor_iter(i) for i in range(2, N+1)))\n    return reduce(lambda a,b: a*(b+1)%MOD, list(c.values()), 1)\n\nclass PrimeUtil:\n\n    def __init__(self, size):\n        self.size = size\n        self._init_table()\n  \n    def _init_table(self):\n        from itertools import takewhile\n        self._is_prime = [True] * self.size\n        self._is_prime[0] = False\n        self._is_prime[1] = False\n        for i in takewhile(lambda x: x*x<=self.size, list(range(self.size))):\n            if not self._is_prime[i]:\n                continue\n            for j in range(i+i, self.size, i):\n                self._is_prime[j] = False\n\n    def prime_iter(self):\n        return [x for x in range(self.size) if self._is_prime[x]]\n\n    def primes(self):\n        return tuple(self.prime_iter())\n\n    def factor_iter(self, n):\n        from itertools import takewhile\n        m = n\n        for p in self.prime_iter():\n            while m % p == 0:\n                yield p\n                m //= p\n            if m == 1:\n                return\n    \n    def factors(self, n):\n        return tuple(self.factor_iter(n))\n\n# Generated by 1.1.7.1 https://github.com/kyuridenamida/atcoder-tools\ndef main():\n    def iterate_tokens():\n        for line in sys.stdin:\n            for word in line.split():\n                yield word\n    tokens = iterate_tokens()\n    N = int(next(tokens))  # type: int\n    print((solve(N)))\n\ndef test():\n    import doctest\n    doctest.testmod()\n\ndef __starting_point():\n    #test()\n    main()\n\n__starting_point()", "passed": true, "time": 0.27, "memory": 14156.0, "status": "done"}, {"code": "n=int(input())\ntemp=[1,1]+[0]*(n-2)\nfor i in range(3,n+1):\n    for j in range(2,i):\n        while i%j==0:\n            i=i//j\n            temp[j-1]+=1\n    if i!=1:\n      temp[i-1]+=1\nans=1\nfor i in range(n-1):\n    ans=(ans*(temp[i+1]+1))%(10**9+7)\nprint(ans)\n", "passed": true, "time": 0.26, "memory": 14220.0, "status": "done"}, {"code": "n=int(input())\nif n==1:\n    print(1)\n    return\nl=[0]*(n+1)#\u7d04\u65700~1000\u306e\u5404\u7dcf\u6570\nfor i in range(2,n+1):\n    x=i\n    j=2\n    while j<n+1:\n        if x%j==0:\n            x//=j\n            l[j]+=1\n        else:\n            j+=1\n#print(l)\nans=1\nfor i in range(len(l)):\n    ans*=(l[i]+1)\n    ans%=(10**9 +7)\nprint(ans)", "passed": true, "time": 0.23, "memory": 14360.0, "status": "done"}, {"code": "def p_factorize(n):\n    arr = []\n    temp = n\n    for i in range(2, int(-(-n**0.5//1))+1):\n        if temp%i==0:\n            cnt=0\n            while temp%i==0:\n                cnt+=1\n                temp //= i\n            arr.append([i, cnt])\n\n    if temp!=1:\n        arr.append([temp, 1])\n\n    if arr==[]:\n        arr.append([n, 1])\n\n    return arr\n\n\nMOD = 10**9 + 7\nN = int(input())\nif N == 1:\n    print(1)\nelse:\n    prime = {}\n    for i in range(2, N + 1):\n        for p, n in p_factorize(i):\n            try:\n                prime[p] += n\n            except KeyError:\n                prime[p] = n\n    ans = 1\n    for n in prime.values():\n        ans *= n + 1\n        ans %= MOD\n\n    print(ans)", "passed": true, "time": 0.14, "memory": 14128.0, "status": "done"}, {"code": "from collections import Counter\nfrom math import factorial\nN = int(input())\nMOD = 10 ** 9 + 7\n\ndef prime(n):\n    b = 2\n    while b * b <= n:\n        while n % b == 0:\n            n //= b\n            a.append(b)\n        b += 1\n    if n > 1:\n        a.append(n)\n\na = []\nprime(factorial(N))\nA = Counter(a)\nX = 1\nfor k, v in A.items():\n    X *= (v + 1) % MOD\nprint(X % MOD)", "passed": true, "time": 0.15, "memory": 14108.0, "status": "done"}, {"code": "n=int(input())\nm=10**9+7\np=[1 for i in range(10000)]\np[0]=0\np[1]=0\nfor i in range(2,n+1):\n  if p[i]==1:\n    for j in range(i*i,n+1,i):\n        p[j]=0\nans=1\nfor i in range(2,n+1):\n  if p[i]:\n    c=0\n    k=i\n    while n//k>0:\n      c=c+(n//k)%m\n      k=k*i\n    ans=(ans*((c+1)%m))%m\nprint((ans%m))\n    \n    \n      \n      \n", "passed": true, "time": 0.23, "memory": 14092.0, "status": "done"}, {"code": "n = int(input())\narr = dict()\nk = set()\nfor h in range(2,n+1):\n  i = h\n  for j in range(2,int(-(-i**0.5//1))+1):\n    if i%j == 0:\n      cnt = 0\n      while i%j == 0:\n        cnt += 1\n        i //= j\n      if j not in arr:\n        arr[j] = cnt\n        k.add(j)\n      else:\n        arr[j] += cnt\n  if i != 1:\n    if i in arr:\n      arr[i] += 1\n    else:\n      arr[i] = 1\n    k.add(i)\nans = 1\nfor num in k:\n  ans *= (arr[num]+1)\n  ans = ans%(10**9+7)\nprint(ans)", "passed": true, "time": 0.23, "memory": 14136.0, "status": "done"}, {"code": "primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, \n          53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107,\n          109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167,\n          173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229,\n          233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283,\n          293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359,\n          367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431,\n          433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491,\n          499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, \n          577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, \n          643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, \n          719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, \n          797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, \n          863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, \n          947, 953, 967, 971, 977, 983, 991, 997]         \n\ndef nCr(n,r):\n  N = 1\n  R = 1\n  for m in range(n-r,n+1):\n    N *= m\n    \n  for m in range(2,r+1):\n    R *= m\n    \n  return N//R\n    \n\nn = int(input())\nprimes = [p for p in primes if p <= n]\nnumpow = []\nfor p in primes:\n  i = 1\n  tmp = 0\n  divisor = p\n  while divisor <= n:\n    tmp += (n // divisor)\n    i += 1\n    divisor = p**i\n  numpow.append(tmp)\n\nimport math    \nnumpow = [i+1 for i in numpow]\ny = math.prod(numpow)\nprint((y % (10**9+7)))\n", "passed": true, "time": 0.22, "memory": 14224.0, "status": "done"}, {"code": "n = int(input())\ns = 1\nans = 1\nfor i in range(1, n+1):\n  s *= i\nfor i in range(2, n+1):\n  k = 1\n  while s % i == 0:\n    s = s // i\n    k += 1\n  ans *= k\nprint(ans % (10 ** 9 + 7))", "passed": true, "time": 0.15, "memory": 14152.0, "status": "done"}, {"code": "import math\nMOD=10**9+7\nN=int(input())\nans=1\nprime=set()\nprime.add(2)\nnumofdiv=[0]*(N+2)\nfor h in range(2,N+1):\n    flag=1\n    for j in prime:\n        if h%j==0:\n            flag=0\n            break\n    if flag==1:\n        prime.add(h)\n\nfor i in range(2,N+1):\n    for p in prime:\n        while(i%p==0):\n            numofdiv[p]+=1\n            i//=p\n#print(numofdiv)\nfor q in range(N+2):\n    ans*=numofdiv[q]+1\n    ans%=MOD\nprint(ans)\n", "passed": true, "time": 0.14, "memory": 14216.0, "status": "done"}, {"code": "n = int(input())\n\nt = [0] * (n+1)\nfor j in range(2, n+1):\n  y = j\n  for i in range(2, n+1):\n    while y % i == 0:\n      t[i] += 1\n      y = y//i\nans = 1\np = 10**9 + 7\nfor i in t:\n  if i != 0:\n    ans *= (i+1)\n    ans %= p\nprint(ans)", "passed": true, "time": 0.17, "memory": 14204.0, "status": "done"}, {"code": "n = int(input())\nl = {}\nans = 1\n\nfor i in range(2, n + 1):\n    for j in range(2, i + 1):\n        if i%j == 0:\n            cnt = 0\n            while i%j == 0:\n                i //= j\n                cnt += 1\n            if j in l:\n                v = l[j]\n                l[j] = cnt + v\n            else:\n                l[j] = cnt\nfor i in l.values():\n    ans = ans*(i + 1)%(10**9 + 7)\n\nprint(ans)", "passed": true, "time": 0.15, "memory": 14224.0, "status": "done"}, {"code": "def bunkai(n):\n    b = 2\n    fct = []\n    while b * b <= n:\n        while n % b == 0:\n            n //= b\n            fct.append(b)\n        b = b + 1\n    if n > 1:\n        fct.append(n)\n    return fct\n\nn=int(input())\ns=[0]*(n+1)\nfor i in range(1,n+1):\n    fact=bunkai(i)\n    for j in fact:\n        s[j]+=1\nans=1\n\nfor i in range(0,n+1):\n    ans*=(s[i]+1)\n    ans%=10**9+7\n\nprint(ans)\n\n\n\n\n", "passed": true, "time": 0.14, "memory": 14284.0, "status": "done"}, {"code": "n=int(input())\n\nsosuu = [2]\nA = 1000\nfor L in range(3, A, 2): # 2 \u4ee5\u5916\u306e\u7d20\u6570\u306f\u5947\u6570\u306a\u306e\u3067\n    for L2 in sosuu:\n        if L % L2 == 0:\n            break # \u7d20\u6570\u3067\u306a\u3044\u3053\u3068\u304c\u308f\u304b\u3063\u305f\u3089\u305d\u308c\u4ee5\u4e0a\u30eb\u30fc\u30d7\u3059\u308b\u5fc5\u8981\u306f\u306a\u3044\n    else: # break \u3067\u629c\u3051\u308b\u3053\u3068\u304c\u306a\u304b\u3063\u305f\u3089 L \u306f\u7d20\u6570\uff08Python \u7279\u6709\u306e\u5236\u5fa1\u69cb\u6587\uff09\n        sosuu.append(L)\nans=[]\n\nfor i in sosuu:\n  ch=1\n  x=i\n  while x<=n:\n    ch+=n//x\n    x=x*i\n    \n  ans.append(ch)\n\nans1=1\nmod=10**9+7\nfor j in ans:\n  ans1=(ans1*j)%mod\n  \nprint(ans1)", "passed": true, "time": 0.14, "memory": 14068.0, "status": "done"}, {"code": "a = int(input())\nb = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]\nc = [0 for _ in range(a)]\nfor i in range(1, a + 1):\n    d = i\n    for e in b:\n        while d % e == 0:\n            c[e - 1] += 1\n            d //= e\n    if d != 1:\n        c[d - 1] += 1\nf = 1\ng = 10 ** 9 + 7\nfor h in c:\n    f *= (h + 1)\n    f %= g\nprint(f)", "passed": true, "time": 0.14, "memory": 14332.0, "status": "done"}, {"code": "N=int(input())\np=10**9+7\n\ndef primeryNum(n):\n    n_=int(n**0.5)\n    ary=list(range(n+1))\n    ary[1]=0 \n    for a in ary:\n        if a>n_: break\n        elif a==0: continue\n        \n        for i in range(a*2,n+1,a):\n            ary[i]=0           \n    return ary\n\nprimeryN=primeryNum(N)\n\ndivN=[0]*(N+1)\nfor pn in primeryN:\n    if pn==0:\n        continue\n    # print(pn)\n    i=1\n    cnt=0\n    while (pn**i<=N):\n        cnt+=(N//pn**i)\n        i+=1\n    divN[pn]=cnt\n\n# print(divN)\nans=1\nfor d in divN:\n    if d==0:\n        continue\n    ans=(ans*(d+1))%p\nprint(ans)", "passed": true, "time": 0.14, "memory": 14240.0, "status": "done"}, {"code": "from math import factorial\n\nn = int(input())\nf = factorial(n)\n\nmod = 10 ** 9 + 7\n\ndef primes(n):\n    is_prime = [True] * (n + 1)\n    is_prime[0] = False\n    is_prime[1] = False\n    for i in range(2, int(n ** 0.5) + 1):\n        if not is_prime[i]:\n            continue\n        for j in range(i * 2, n + 1, i):\n            is_prime[j] = False\n    return [i for i in range(n + 1) if is_prime[i]]\n\nans = 1\nfor p in primes(n):\n    temp = 1\n    while f % p == 0:\n        temp += 1\n        f //= p\n    ans = (ans * temp) % mod\nprint(ans)", "passed": true, "time": 0.15, "memory": 14368.0, "status": "done"}, {"code": "import math\nimport collections\nN = int(input())\n# N!\u306e\u7d04\u6570\u306e\u500b\u6570\u309210**9+7\u3067\u5272\u3063\u305f\u3042\u307e\u308a\u3092\u51fa\u3059\nnums = [i for i in range(2, N + 1)]\n\n\ndef prime_factorization(num):\n    sqrt_num = math.sqrt(num)\n    prime_numbers = []\n    for i in range(2, int(sqrt_num) + 1):\n        # print(num)\n        while num % i == 0:\n            # print(num)\n            num = num / i\n            prime_numbers.append(i)\n    if num != 1:\n        prime_numbers.append(int(num))\n\n    return prime_numbers\n\n\n# print(nums)\nnums_counter = {}\nfor num in nums:\n    prime_numbers = prime_factorization(num)\n    # print(prime_numbers)\n    for prime_num in prime_numbers:\n        # print(nums_counter)\n        # print(prime_num in nums_counter)\n        if prime_num in nums_counter:\n            nums_counter[prime_num] += 1\n        else:\n            nums_counter[prime_num] = 1\n\nans = 1\nfor key, value in list(nums_counter.items()):\n    ans *= (value + 1)\n    ans %= 10**9 + 7\n\nprint(ans)\n", "passed": true, "time": 0.14, "memory": 14120.0, "status": "done"}, {"code": "N = int(input())\nmod = 1000000007\nfrom collections import defaultdict as dd\nY = dd(lambda:1)\nfor i in range(2, N+1):\n    M = i\n    for j in range(2,i+1):\n        while M % j == 0:\n            Y[j] += 1\n            M //= j\n\ndef product(X):\n    res = 1\n    for x in X:\n        res *= x\n        res %= mod\n    return res    \n\nans = product(list(Y.values()))\nprint(ans)\n", "passed": true, "time": 0.27, "memory": 14084.0, "status": "done"}, {"code": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Wed Sep 30 01:24:22 2020\n\n@author: liang\n\"\"\"\n\nMOD = 10**9 + 7\nN = int(input())\ndata = [i for i in range(2,N+1)]\ntable = list()\n\n#\u7d20\u6570\u30ea\u30b9\u30c8\nwhile data:\n    tmp = data[0]\n    table.append(tmp)\n    data = [i for i in data if i%tmp != 0]\n    \n#print(table)\nres = dict()\nfor i in range(2,N+1):\n    for t in table:\n        if i%t == 0:\n            if t not in res:\n                res[t] = 1\n            tmp = i\n            while tmp%t == 0:\n                res[t] += 1\n                tmp //= t                \n                \nans = 1\nfor r in res.values():\n    ans *= r\n    ans %= MOD\n#print(res)\nprint(ans)", "passed": true, "time": 0.21, "memory": 14344.0, "status": "done"}, {"code": "import sys\nimport math\nfrom collections import defaultdict\nfrom collections import deque\n\nsys.setrecursionlimit(1000000)\nMOD = 10 ** 9 + 7\ninput = lambda: sys.stdin.readline().strip()\nNI = lambda: int(input())\nNMI = lambda: map(int, input().split())\nNLI = lambda: list(NMI())\nSI = lambda: input()\n\n\ndef prime_fact(n):\n    root = int(math.sqrt(n))\n    prime_dict = {}\n    for i in range(2, root+1):\n        cnt = 0\n        while n % i == 0:\n            cnt += 1\n            n = n // i\n        if cnt:\n            prime_dict[i] = cnt\n    if n != 1:\n        prime_dict[n] = 1\n    return prime_dict\n\n\ndef main():\n    N = NI()\n    D = defaultdict(int)\n    if N == 1:\n        print(1)\n        return\n\n    for n in range(2, N+1):\n        ND = prime_fact(n)\n        for p, a in list(ND.items()):\n            D[p] += a\n\n    ans = 1\n    for p, a in list(D.items()):\n        ans = ans * (a+1) % MOD\n    print(ans)\n\n\ndef __starting_point():\n    main()\n__starting_point()", "passed": true, "time": 0.2, "memory": 14292.0, "status": "done"}, {"code": "MOD = 10 ** 9 + 7\n\ndef sieve(n):\n    srn = int(n ** 0.5) + 1\n    f = [False] * (srn + 1)\n    res = []\n    for i in range(2, srn + 1):\n        if f[i]:\n            continue\n        res.append(i)\n        for j in range(2 * i, srn + 1, i):\n            f[j] = True\n    return res\n\ndef trial_division(n):\n    res = dict()\n    for i in range(2, n+1):\n        m = i\n        pn = sieve(m)\n        for p in pn:\n            while m % p == 0:\n                res[p] = res.get(p, 0) + 1\n                m //= p\n        if m > 1:\n            res[m] = res.get(m, 0) + 1\n    return res\n\nN = int(input())\nfn = trial_division(N)\nres = 1\nfor f in fn.values():\n    res *= (f + 1)\n    res %= MOD\nprint(res)", "passed": true, "time": 0.22, "memory": 14152.0, "status": "done"}, {"code": "N=int(input())\ntable=[True for _ in range(N+1)]\ntable[0]=False\ntable[1]=False\nfor i in range(2,N+1):\n    if table[i]==False:\n        continue\n    for j in range(2,N//i):\n        table[i*j]=False\np=[]\nfor i in range(N+1):\n    if table[i]:\n        p.append(i)\n\nn=len(p)\ncnt=[0 for _ in range(n)]\nfor i in range(2,N+1):\n    x=i\n    j=0\n    while x>1:\n        while x%p[j]==0:\n            cnt[j]+=1\n            x//=p[j]\n        j+=1\nans=1\nMOD=1000000007\nfor i in range(n):\n    ans*=cnt[i]+1\n    ans%=MOD\nprint(ans)\n", "passed": true, "time": 0.16, "memory": 14376.0, "status": "done"}, {"code": "n=int(input())\nd={i:0 for i in range(2,n+1)}\ndef prime_factorize(n):\n    a = []\n    while n % 2 == 0:\n        a.append(2)\n        n //= 2\n    f = 3\n    while f * f <= n:\n        if n % f == 0:\n            a.append(f)\n            n //= f\n        else:\n            f += 2\n    if n != 1:\n        a.append(n)\n    return a\nfor i in range(2,n+1):\n    for j in prime_factorize(i):\n        d[j]+=1\na=1\nfor v in d.values():\n    a=a*(v+1)\nprint(a%(10**9+7))", "passed": true, "time": 0.14, "memory": 14280.0, "status": "done"}, {"code": "n=int(input())\n#a,b=map(int,input().split())\n#l=list(map(int,input().split()))\n#l=[list(map(int,input().split())) for i in range(n)]\n\ndef prime_factorize(n):\n    n_origin=n+0\n    primelist=[]\n    a=2\n    while a*a<=n_origin:\n        if n%a!=0:\n            a+=1\n            continue\n        ex=0\n        while n%a==0:\n            ex+=1\n            n=n//a\n        primelist.append([a,ex])\n        a+=1\n    if n!=1:\n        primelist.append([n,1])\n    return primelist\nex={}\nmod=10**9+7\nfor i in range(2,n+1):\n    res=prime_factorize(i)\n    for p,e in res:\n        ex[p]=ex.get(p,0)+e\n\nans=1\nfor k, v in ex.items():\n    ans=(ans*(v+1))%mod\nprint(ans)", "passed": true, "time": 0.15, "memory": 14252.0, "status": "done"}, {"code": "import collections\nN = int(input())\nls = [0]+[0]*N\ncouterls = collections.Counter(ls)\nfor i in range(1,N+1):\n    for j in range(2,N+1):\n        if i % j == 0:\n            while i % j == 0:\n                couterls[j] += 1\n                i = i // j\n        elif i == 1:\n            break\n        else:\n            pass\nans = 1\ncouterls.pop(0)\nfor i in couterls.values():\n    ans = (ans * (i+1) ) % (10**9+7)\nprint(ans)", "passed": true, "time": 0.15, "memory": 14348.0, "status": "done"}, {"code": "import collections\ndef make_divisors(n):\n    divisors = []\n    for i in range(1, int(n**0.5)+1):\n        if n % i == 0:\n            divisors.append(i)\n            if i != n // i:\n                divisors.append(n//i)\n\n    divisors.sort()\n    return divisors\ndef factorization(n):\n    arr = []\n    temp = n\n    for i in range(2, int(-(-n**0.5//1))+1):\n        if temp%i==0:\n            cnt=0\n            while temp%i==0:\n                cnt+=1\n                temp //= i\n            arr.append([i, cnt])\n\n    if temp!=1:\n        arr.append([temp, 1])\n\n    if arr==[]:\n        arr.append([n, 1])\n\n    return arr\ndef main():\n    dd = collections.defaultdict(int)\n    n = int(input())\n    MOD = 10**9 + 7\n\n    for i in range(1,n+1):\n        k=factorization(i)\n        for j in k:\n            dd[j[0]]+=j[1]\n    res = 1\n    for j in list(dd.keys()):\n        if(j!=1):\n            res *= (dd[j]+1)%MOD\n            res%=MOD\n    print(res)\n\ndef __starting_point():\n    main()\n\n__starting_point()", "passed": true, "time": 0.14, "memory": 14256.0, "status": "done"}, {"code": "def factrial(n):\n  factors = []\n  while n%2 == 0:\n    factors.append(2)\n    n //= 2\n    \n  for i in range(3, int(n**0.5)+1, 2):\n    while n%i == 0:\n      factors.append(i)\n      n //= i\n      \n  if n != 1: factors.append(n)\n    \n  return factors\n\n\nn = int(input())\nmod = 10**9+7\n\nd = {}\nfor i in range(1,n+1):\n  fac = factrial(i)\n  for j in fac:\n    if j in d: d[j] += 1\n    else: d[j] = 1\n\nans = 1\nfor k,v in d.items():\n  ans *= (v+1)\n  ans %= mod\nprint(ans)", "passed": true, "time": 0.14, "memory": 14360.0, "status": "done"}, {"code": "def factorize(n):\n    #https://python.ms/factorize/#%E5%AE%9F%E8%A3%85\n    fct = []  # prime factor\n    b, e = 2, 0  # base, exponent\n    while b * b <= n:\n        while n % b == 0:\n            n = n // b\n            e = e + 1\n        if e > 0:\n            fct.append([b, e])\n        b, e = b + 1, 0\n    if n > 1:\n        fct.append([n, 1])\n    return fct\n\nn = int(input())\n\nnum = 1\nfor i in range(1,n+1):\n    num *= i\n\nfact = factorize(num)\n#print(fact)\nans = 1\nfor i in range(len(fact)):\n    ans *= (fact[i][1]+1)\n\nprint(ans%(10**9+7))", "passed": true, "time": 0.15, "memory": 14208.0, "status": "done"}, {"code": "import math\nN = int(input())\n\ndef factrize(N):\n    L={}\n    for n in range(2,N+1):\n        L[n]=0\n        while N % n == 0:\n            L[n]+=1\n            N = N/n\n    return L\n\nf_ = {}\nfor n in range(2,int(N)+1):\n    f_[n]=0\n        \nfor n in range(1,N+1):\n    F=factrize(n)\n    for f in F.keys():\n        f_[f]+=F[f]\n        \nans=1\nfor f in f_.keys():\n    if f_[f] != 0:\n        ans=ans*(f_[f]+1)\n        \nprint(ans%((10**9)+7))", "passed": true, "time": 0.34, "memory": 14244.0, "status": "done"}, {"code": "def factorization(n):\n    arr = []\n    temp = n\n    for i in range(2, int(-(-n**0.5//1))+1):\n        if temp%i==0:\n            cnt=0\n            while temp%i==0:\n                cnt+=1\n                temp //= i\n            arr.append([i, cnt])\n    if temp!=1:\n        arr.append([temp, 1])\n    if arr==[]:\n        arr.append([n, 1])\n    return arr\n\nN=int(input())\nmod=10**9+7\nif N==1:\n  print(1)\nelse:\n  ans=1\n  dp=[0]*1001\n  for i in range(2,N+1):\n    p=factorization(i)\n    for i,j in p:\n      dp[i]+=j\n  for i in range(1001):\n    ans*=(dp[i]+1)\n    ans%=mod\n  print(ans)", "passed": true, "time": 0.14, "memory": 14224.0, "status": "done"}, {"code": "import math\n\ndef is_prime(n):\n    if(n == 1):\n        return False\n    \n    for i in range(2, int(math.sqrt(n))+1):\n        if(n%i == 0):\n            return False\n        \n    return True\n\nsosu = []\nfor i in range(1, 1001):\n    if(is_prime(i)):\n        sosu.append(i)    \n\nN = int(input())\nmod = 10**9+7\nx = math.factorial(N)\na = 1\n\nfor i in range(len(sosu)):\n    cnt = 0\n    if(sosu[i] > x):\n        break\n    while (x%sosu[i]==0):\n        x = x//sosu[i]\n        cnt += 1\n    if(cnt):\n        a *= (cnt+1)\n        a %= mod\n\nprint(a)", "passed": true, "time": 0.2, "memory": 14388.0, "status": "done"}]