n!代表n的阶乘
1、简单的对n!中的每个数字(共n个)计算其质因子p的个数
2、公式法:n!中质因子p的个数为=(n/p+n/p2+n/p3+…)
实现:
1、低阶版
int cal (int n;int p){
int ans=0;
for(int i=2;i<=n;i++){
int temp=i;
while(temp%p==0){
ans++;
temp/=p;
}
}
return ans;
}
2、中阶
int cal(int n,int p){
int cnt=0;
while(n){
cnt+=n/p;
n/=p;
}
return cnt;
}
3、递归版本
int cal(int n,int p){
if(n<p) return 0;
return n/p+cal(n/p,p);
}
计算阶乘中质因子的数量
本文介绍如何计算n的阶乘(n!)中特定质因子p的出现次数,提供了三种方法:遍历检查、公式法及递归实现,旨在帮助读者理解和掌握阶乘中质因子计算的高效算法。
1142

被折叠的 条评论
为什么被折叠?



