题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
定义阶乘 n! = 1 × 2 × 3 × · · · × n
请问 100!(100 的阶乘)有多少个正约数。
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
对于约数的求法:将100!拆成多个最小质数相乘,他们的(乘幂加一)之积就是约数个数
如 180
拆成 2*2*3*3*5
最后约数个数就是 (1+2)*(1+2)*(1+1)=18
code:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[105];
int main()
{
ll sum = 0;
for (int i = 2; i <= 100; i++)
{
int ss = i;
for (int j = 2; j <= ss; j++)
{
while (ss % j==0&&ss!=0)
{
a[j]++;
ss /= j;
}
}
}
sum = a[2] + 1;
for (int i =3; i <= 100; i++)
{
sum *= (a[i] + 1);
}
cout << sum << endl;
return 0;
}