天天看點

櫻花

題目:

櫻花

題解:

櫻花

我們先篩出質數,再對 分解質因數關于 分解質因數的方法可以看我的上一篇部落格 ​​階乘分解​​将分解為以下形式

櫻花

對于每一個分解出來的質因數,可以從選到,是以有種可能,是以約數個數為

#include <bits/stdc++.h>
using namespace std;
long long pri[1000005];
long long primes[1000005];
long long mod=1e9+7;
int con=0;
void prime(long long n)
{
    for(int i=1;i<=n;i++) pri[i]=1;
    pri[1]=0;
    for(int i=2;i<=n;i++)
    {
        if(pri[i])
        {
            primes[++con]=i;
            for(int j=2;j*i<=n;j++)
            {
                pri[j*i]=0;
            }
        }
    }
}
int main()
{
    long long n;
    cin>>n;
    prime(n);
    long long ans=1;
    for(int i=1;i<=con;i++)
    {
        long long m=n;
        long long c=0;
        long long a=primes[i];
        while(m)
        {
            c+=(m/a);
            m/=a;
        }
        ans=(ans*(2*c+1)%mod)%mod;
    }
    cout<<ans<<endl;
    return 0;
}      

繼續閱讀