蓝桥杯 阶乘约数
3.阶乘约数 - 蓝桥云课
阶乘约数
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所结结果输出即可。
定义阶乘 n! = 1 × 2 × 3 × ... × n。
请问 100!(100 的阶乘)有多少个正约数。
运行限制
- 最大运行时间:1s
- 最大运行内存:128M
总通过次数:5460 | 总提交次数:6134 | 通过率:89%
难度:困难 标签:2020、国赛、数学
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll prime[110];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
ll n = 100;
for(ll i = 2 ; i <= n ; i++)//分解每一个数的质因数
{
ll k = i;
for(ll j = 2 ; j <= k ; j++)//分解第i数字的质因数
{
while(k % j == 0)
{
prime[j]++;
k /= j;
}
}
}
ll sum = 1;
for(ll i = 2 ; i <= n ; i++)
{
if(prime[i])
{
sum *= (prime[i] + 1);
}
}
cout << sum;
return 0;
}