洛谷10月月赛R1·浴谷八连测R1·提高组 T1
来源:互联网 发布:java保存字符串到文件 编辑:程序博客网 时间:2024/05/18 00:18
思路很简单,先对k分解质因数,存入一个数组中去。
然后对于n的阶乘分解那个数组的质因数,除数量,取最小值!
刚开始忘特判tot==0,ans开的不够大!
更快更稳定的方法RHO大质数分解,我懒的打了。
不会的可以参考我之前的BLOG(求一个很大数的欧拉函数)
#include <cstdio>#include <iostream>#define ll long longusing namespace std;const int maxm=1e7;ll prime[maxm],cnt;bool vis[maxm];ll z[maxm],num[maxm],tot;void pre(){ vis[1]=1; for(int i=2;i<=1e7;i++) { if(!vis[i]) prime[++cnt]=i; for(int j=1;j<=cnt&&i*prime[j]<=maxm;j++) { vis[i*prime[j]]=1; if(i%prime[j]==0) break; } }}int main(){ pre(); ll n,k; scanf("%lld%lld",&n,&k); for(int j=1;j<=cnt&&k!=1;j++) { if(prime[j]>n) break; if(k%prime[j]==0) { z[++tot]=prime[j]; while(k%prime[j]==0) k/=prime[j],num[tot]++; } } ll ans=1e17; for(int i=1;i<=tot;i++) { ll t=n; ll sum=0; while(t) { t/=z[i]; sum+=t; } //printf("%lld\n",sum); ans=min(ans,1ll*sum/num[i]); } ll w=1e17; if(ans==w) ans=0; /*printf("%lld\n",tot); for(int i=1;i<=tot;i++) printf("%lld %lld\n",z[i],num[i]);*/ printf("%lld",ans);}
阅读全文
1 0
- 洛谷10月月赛R1·浴谷八连测R1·提高组 T1
- 洛谷10月月赛R1·浴谷八连测R1·提高组 SAC E#1 -T1 一道中档题 Factorial
- 洛谷10月月赛R1·浴谷八连测R1·提高组 SAC E#1
- 洛谷10月月赛R1·浴谷八连测R1·提高组 一道中档题 Factorial
- 洛谷10月月赛R1·浴谷八连测R1·提高组 T2
- 洛谷10月月赛R1·浴谷八连测R1·提高组
- 洛谷10月月赛R1·浴谷八连测R1·提高组 SAC E#1
- 洛谷10月月赛R1·浴谷八连测R1·提高组:SAC E#1
- 洛谷10月月赛R1·浴谷八连测R1·提高组 T3
- <洛谷10月月赛R1·浴谷八连测R1·提高组·T1 3927 > 快速求1~n中的某一因子个数之和
- 【洛谷10月月赛R1提高组】 SAC E#1
- 洛谷10月月赛R1-T1-一道中档题 Factorial
- [洛谷10月月赛R1·普及组]T21 SAC E#1
- 洛谷10月月赛R1-T2-一道简单题 Sequence2
- 洛谷5月月赛R1题解报告
- 洛谷10月月赛R2·浴谷八连测R3 T1
- R1
- SDOI R1 day2 T1 生成魔咒 后缀自动机
- 2017.10.15 旅行comf 失败总结
- 2017.10.14晚,用迅雷下载大部分BT资源出现失败,tracker服务器被封了?FK
- 【第1079期】反击爬虫,前端工程师的脑洞可以有多大?
- 你们觉得 vscode 的新 logo 怎么样?
- android ubuntu /windows usb device list of devices attach
- 洛谷10月月赛R1·浴谷八连测R1·提高组 T1
- 共享变量可见性
- 关于HTTP协议,一篇就够了
- CentOS 7 手工配置新增网卡
- 冒泡排序
- Centos7 安装Python3 Scrapy
- @Autowired与@Resource的区别
- UVa 11210
- 4、hadoop配置完全分布式