比赛 EYOI暨SBOI暑假快乐赛6th 评测结果 RRRRRRRRRR
题目名称 千风的诗篇 最终得分 0
用户昵称 ムラサメ 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-06-30 11:33:23
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int p[1000010],a[1000010];
int n,tot=0;
ll ans=1,cnt[1000010];
void ols(){
	a[1]=1;
	for(int i=2;i<=n;i++){
		if(!a[i]){
			a[i]=i;
			p[++tot]=i;//记录每一个找到的素数
		}
		for(int j=1;j<=tot;j++){
			if(p[j]>a[i]||p[j]*i>n){
				break;
			}
			a[i*p[j]]=p[j];
		}
	}
}
void work(){
	for(int i=1;i<=tot;i++){
		cnt[i]=0;
		for(ll j=p[i];j<=n;j*=p[i]){
			cnt[i]+=n/j;
		}
		cnt[i]%=1000000007;
	}
	for(int i=1;i<=tot;i++){
		ans=(ans*(cnt[i]*2+1))%1000000007;
	}
	cout<<ans<<endl;
}
int main(){
	freopen("sakuras.in","r",stdin);
	freopen("sakuras.out","w",stdout);
	cin>>n;
	ols();
	work();
	return 0;
}