记录编号 572293 评测结果 AAAAAAAAAA
题目名称 秒速五厘米 最终得分 100
用户昵称 Gravatarop_组撒头屯 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2022-06-30 14:26:44 内存使用 0.00 MiB
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1000000007;
const int N=1000000+5;
int n,cnt=0;
int ss[N]={0};
bool ok[N]={0};
ll ans=1;
int main(){
    freopen ("sakuras.in","r",stdin);
    freopen ("sakuras.out","w",stdout);
    scanf("%d",&n);
    for (int i=2;i<=n;i++){
        if (ok[i]==0){
            ss[++cnt]=i;
        }
        ok[i]=1;
        for (int j=1;j<=cnt&&i*ss[j]<=n;j++){
            ok[i*ss[j]]=1;
            if (i%ss[j]==0)break;
        }
    }
    for (int i=1;i<=cnt;i++){
        ll t=ss[i];ll c=0;
        while(t<=n){
            c+=n/t;
            t*=ss[i];
        }
        c=(c*2)%mod;
        ans=(ans*(c+1))%mod;
    }
    printf("%lld\n",ans%mod);
    return 0;
}