计算n!中包含的质因子p的个数

有公式:

num=xp+xp2+xp3+....
xpk相当于1到n中pk的倍数的个数。公式中只累加一遍是因为pk1这些已经在上一次被加过了。比如求8!中2的个数,1到8中2的倍数有2,4,6,8 = 8 / 2 = 4个,他们共有4个2;22=4的倍数有4,8 = 8 / 4 = 2个,相当于贡献了2个4 == 4个2,但上一轮4和8各贡献了一个2,因此本轮只算贡献了2个2(本轮算出来几个数就算贡献了几个p)。
代码:

LL cal(LL n,LL x){//计算 n! 中质因子 x 的数量
    LL num = 0;
    while(n){
        num += n/x;
        n = n/x;
    }
    return num;
}
posted @   脂环  阅读(471)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2020-05-11 Codeforces Round #639 (Div. 2) B.Card Constructions
2020-05-11 Codeforces Round #639 (Div. 2) A. Puzzle Pieces
2020-05-11 Codeforces Round #640 (Div. 4)全部七题
点击右上角即可分享
微信分享提示
主题色彩