1 条题解

  • 1
    @ 2018-09-24 14:41:00
    #include <bits/stdc++.h>
    #define ll long long
    const int maxn=100005;
    const int mod=998244353;
    int pri[maxn];
    ll cnt[maxn];
    int tot=0;
    int n;
    long long ans=1;
    bool judge(int tmp){//质数 
        for(int j=2;j*j<=tmp;j++){
            if(tmp%j==0) return false;
        }
        return true;
    }
    void prime(){//个数 
        for(int i=2;i<=n;i++){
            if(judge(i)) pri[++tot]=i;
        }
        return;
    }
    void ca_cnt(){
        for(int i=1;i<=tot;i++){
            for(int j=pri[i];j<=n;j*=pri[i]){
                cnt[i]=cnt[i]+(n/j)%mod;
            }
        }
    }
    int main(){
        //freopen("math.in","r",stdin);
        //freopen("math.out","w",stdin);
        scanf("%d",&n);
        if(n==1){
            printf("1");
            return 0;
        }
        prime();
        ca_cnt();
        for(int i=1;i<=tot;i++){
            ans=ans%mod*(cnt[i]+1)%mod;
        }
        ans=(ans+mod)%mod;
        printf("%lld",ans);
        //fclose(stdin);
        //fclose(stdout);
        return 0;
    }
    
  • 1

信息

难度
7
分类
(无)
标签
(无)
递交数
19
已通过
6
通过率
32%
上传者