如题:
定义阶乘 n! = 1 × 2 × 3 × · · · × n。
请问 100! (100 的阶乘)有多少个约数。
知识来源于网络。
每个数都拆成质数相乘 最后累乘1到一百每个质数数出现的次数加一(考虑不取)
例如
180=2 * 2 * 3 * 3 * 5=22*32 * 5
180的约数个数为(1+2) * (1+2) * (1+1)=18个。
#include <stdio.h>
int p[100];
int main()
{
int i,j;
for (i = 2; i <= 100; i ++)
{
int n = i;
for (j = 2; j <= n / j; j ++)
{
while(n % j == 0)
{
p[j] ++;
n /= j;
}
}
if(n > 1)
{
p[n] ++;
}
}
long long ans = 1;
for (i = 2; i <= 100; i ++)
{
if(p[i]>0)
{
ans *= (p[i] + 1);
}
}
printf("%lld",ans);
return 0;
}
运行代码:
答案是:39001250856960000