比赛 |
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;
}