window.cnblogsConfig = {//可以放多张照片,应该是在每一个博文上面的图片,如果是多张的话,那么就随机换的。 homeTopImg: [ "https://i.loli.net/2019/08/02/5d440029af8e994539.png" ], }

UVA884的题解

UVA884的题解

  • 思考背景

既然题目要求 \(n!\) 的质因数个数,又有多组数据,我们为什么要求多次呢?可以使用预处理求解。

所以,思路就来了~

  • 思路

假设 \(f_i\) 表示 \(i!\) 中的质因数,那么一个数 \((i-1)!\) 乘以一个数 \(i\) 之后质因数的个数就等于原本的数的质因数个数加当前数的质因数个数,所以我们可以得到预处理方程式 $ f_i = f_{i-1}+cnt(i) $,此处的 \(cnt(i)\) 表示 \(i\) 有多少个质因数。

  • 代码

这......

思路都这么清晰了,代码就不用贴了吧!

附上 cnt 函数代码:

int cnt(int n) { int s = sqrt(n); int ret = 0; for (int i = 2; i <= n && i <= s; i++) while(n % i == 0) ret++, n /= i; if (n != 1) return ret + 1; return ret; }

__EOF__

本文作者mgcjade
本文链接https://www.cnblogs.com/mgcjade/p/17978476.html
关于博主:蒟蒻一枚,I AK IOI!(不可能的)
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   mgcjade  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示