OIG XI - cia

// https://szkopul.edu.pl/problemset/problem/ciasta/site/?key=statement
// OIG XI (3 etap, zawody drużynowe)

#include <bitset>
#include <iostream>

constexpr int sizik = 1000 * 1000 + 17;
std::bitset<sizik> arr;

constexpr int mod = 1000 * 1000 * 1000 + 33;

int main() {
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(0);
    std::cout.tie(0);

    int n;
    std::cin >> n;

    long long ans = 1;

    for (int i = 2; i <= n; i++) {
        if (!arr[i]) {
            long long temp = 0;

            for (int j = i; j <= n; j += i) {
                arr[j] = true;
            }

            for (long long j = i; j <= n; j *= i) {
                temp++;
            }

            ans = (ans * temp) % mod;
        }
    }

    std::cout << ans % mod << '\n';

    return 0;
}