比赛 EYOI暨SBOI暑假快乐赛6th 评测结果 AAAAAAAAAA
题目名称 秒速五厘米 最终得分 100
用户昵称 HeSn 运行时间 0.007 s
代码语言 C++ 内存使用 0.99 MiB
提交时间 2022-06-30 09:59:40
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
int n, v[1000010] = {0}, p[100010] = {0}, ans = 1, cnt = 0;
int prime(int x) {
	memset(v, 0, sizeof(v));
	for(int i = 2; i <= x; i ++) {
		if(v[i] == 0) {
			v[i] = i;
			p[++ cnt] = i;
		}
		for(int j = 1; j <= cnt; j ++) {
			if(p[j] * i > x || p[j] > v[i]) {
				break;
			}
			v[i * p[j]] = p[j];
		}
	}
}
int main() {
	freopen("sakuras.in", "r", stdin);
	freopen("sakuras.out", "w", stdout);
	cin >> n;
	prime(n);
	for(int i = 1; i <= cnt; i ++) {
		long long c = 0, t = p[i];
		while(t <= n) {
			c += n / t;
			t *= p[i];
		}
		c = (c * 2) % mod;
		ans = (ans * (c + 1)) % mod;
	}
	cout << ans << endl;
	return 0;
}