博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LOJ6303:水题——题解
阅读量:6239 次
发布时间:2019-06-22

本文共 973 字,大约阅读时间需要 3 分钟。

题目来自LOJ。

就记一个公式,设f(n,k)为n!里分解得到的k(k为质数)的个数,则f(n,k)=f(n/k,k)+n/k。

证明很好证,显然我们要的只有k,k^2,k^3……这样的数有n/k个,然后往下递归即可。

至于k为合数,就质因数分解做就行。

k的质因子最多O(logk)个,递归显然是O(logn)的,因此复杂度为O(logklogn),可以线性筛预处理素数通过。

#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long ll;const int N=4e6+5;const ll INF=9e18;ll calc(ll n,ll p){ if(n
n)break; he[i*su[j]]=1; if(i%su[j]==0)break; } }}ll n,k;int main(){ Euler(N-5); while(scanf("%lld%lld",&n,&k)!=EOF){ ll x=INF; for(int i=1;su[i]*su[i]<=k;i++){ if(k%su[i]==0){ ll cnt=0; while(k%su[i]==0)k/=su[i],cnt++; x=min(x,calc(n,su[i])/cnt); } } if(k>1)x=min(x,calc(n,k)); printf("%lld\n",x); } return 0;}

+++++++++++++++++++++++++++++++++++++++++++

+本文作者:luyouqi233。               +

+欢迎访问我的博客:+

+++++++++++++++++++++++++++++++++++++++++++

转载于:https://www.cnblogs.com/luyouqi233/p/9079997.html

你可能感兴趣的文章
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>
非监督学习算法:异常检测
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
Linux coredump
查看>>
Ubuntu 10.04安装水晶(Mercury)无线网卡驱动
查看>>
我的友情链接
查看>>
ElasticSearch 2 (32) - 信息聚合系列之范围限定
查看>>
VS2010远程调试C#程序
查看>>
[MicroPython]TurniBit开发板DIY自动窗帘模拟系统
查看>>
从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
查看>>
windows查看端口占用
查看>>
Yii用ajax实现无刷新检索更新CListView数据
查看>>
JDBC的事务
查看>>
App 卸载记录
查看>>
JavaScript变量和作用域
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
Apache Pulsar中的地域复制,第1篇:概念和功能
查看>>
python pip install 出现 OSError: [Errno 1] Operation not permitted
查看>>
从源码分析scrollTo、scrollBy、Scroller方法的区别和作用
查看>>
ObjectOutputStream和ObjectInputStream
查看>>