You are given an integer N. Find the number of the positive divisors of N!, modulo 109+7.
Constraints
- 1≤N≤103
The input is given from Standard Input in the following format:
N
Output
Print the number of the positive divisors of N!, modulo 109+7.
Sample Input 13Sample Output 1
4
There are four divisors of 3! =6: 1, 2, 3 and 6. Thus, the output should be 4.
题意:求n的阶乘的因子数;
思路:数论的原理,n的阶乘的因子个数等于n的素因子个数的幂的乘积;
下面附上我的代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int k[1005];
const LL mod=1e9+7;
int main()
{
int n;
cin>>n;
for(int i=2;i<=n;i++)
{
int l=i;
for(int j=2;j<=l;j++)
{
while(l%j==0)
{
k[j]++;
l/=j;
}
}
if(l) k[l]++;
}
LL sum=1;
for(int i=2;i<=n;i++)
{
if(k[i])
{
sum*=(k[i]+1);
sum=sum%mod;
}
}
printf("%lld\n",sum%mod);
return 0;
}