本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
定义阶乘 n! = 1 × 2 × 3 × · · · × nn!=1×2×3×⋅⋅⋅×n。
请问 100!100! (100100 的阶乘)有多少个正约数。
运行限制
最大运行时间:1s
最大运行内存: 128M
约数个数的定理:
对于一个大于1正整数n可以分解质因数:
则n的正约数的个数就是。
其中a1、a2、a3…ak是p1、p2、p3,…pk的指数。
#include <iostream>
using namespace std;
#define N 100
int a[N];
int main()
{
long long sum=1;
int j,n;
for(int i=2;i<=100;i++){
j=2;
n=i;//当时用i直接参与%j,/j运算,导致根本就跳不出循环,蠢到了
while(n!=1){
if(n%j==0){
a[j]++;
n/=j;
}
else
j++;
}
}
for(int i=1;i<100;i++){
if(a[i]){
sum*=(a[i]+1);
}
}
cout<<sum<<endl;
return 0;
}