UVA 10780 - Again Prime No Time
来源:互联网 发布:网络虚拟财产保护2017 编辑:程序博客网 时间:2024/05/16 16:04
UVA 10780 - AgainPrime No Time
原题大意:已知m和n,求最大的k ,使(m^k) | n!。
分析:我们知道,对于a=a1^p1*a2^p2*……an^pn , b=b1^q1*b2^q2*……bn^qm, 若a | b,
则 a的质因子集A={a1,a2,…..,an}必定是b的质因子集B={b1,b2,….,bm}的子集,且对于所有
ai=bj有pi<=qj。否则a不能整除b。
因此只需将m分解为:m= a1^p1*a2^p2*……an^pn, n!分解为n!=b1^q1*b2^q2*……bn^qm,
然后求出qj / pi (ai=bj) 的最小值即可。
可是n!的质因数分解有点复杂,实际上我们只需找出n! 中质因子ai的个数。这个问题的算法为:
n/ai+n/(ai^2)+n/(ai^3)+…….
如25! 含 5 的个数为 25/5+25/5^2=6.
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<stack>#include<cmath>#include<algorithm>#include<cstdlib>#include<stack>#include<map>#include<vector>typedef long long LL;using namespace std;const int INF=0x3f3f3f3f;int main(){ int n,m,cas=1,T,tmp,t,k; scanf("%d",&T); while(T--) { scanf("%d%d",&m,&n); int ans=INF; for(int i=2;i*i<=m;i++) { if(m%i==0) { tmp=n; t=k=0; while(m%i==0) m/=i,k++; while(tmp) t+=tmp/i,tmp/=i; ans=min(ans,t/k); //当m不能整除n!(m^x更不能整除n!)时,t<k,t/k=0 。 即 ans=0。 } } if(m>1) { t=0; tmp=n; while(tmp) t+=tmp/m,tmp/=m; ans=min(ans,t); } printf("Case %d:\n",cas++); if(ans) printf("%d\n",ans); else printf("Impossible to divide\n"); } return 0;}
- uva 10780 Again Prime? No Time.
- UVa 10780-Again Prime? No Time.
- UVA 10780 - Again Prime No Time
- UVA - 10780 Again Prime? No Time.
- UVa:10780 Again Prime? No Time.
- 【UVa 10780】 Again Prime? No time.
- UVA 10780 Again Prime? No time
- UVa - 10780 - Again Prime? No Time.
- [UVa 10780]Again Prime?No time.
- UVa 10780 - Again Prime? No Time.
- UVA 10780 C - Again Prime? No Time.
- Again Prime? No Time.(UVA 10780)
- UVA 10780-Again Prime? No Time.
- uva 10780Again Prime? No Time.
- UVa 10780 Again Prime? No Time. (数论&素因子分解)
- Uva 10780 Again Prime? No time. 解题报告(数学)
- uva 10780 - Again Prime? No Time.(数论)
- UVA 10780 - Again Prime? No Time.(数论)
- Win32 Series - Rectangles, Regions, and Clipping
- 搬运工--Linux平台软件管理
- Unsupported major.minor version 51.0解决办法
- express for node 路由route几种实现方式的思考
- malloc函数详解
- UVA 10780 - Again Prime No Time
- hdu1427之速算24点
- android和javascript的交互
- [linux] 不能执行shell命令
- Simple lru cache
- 软件架构模式的种类
- HTML5画布kineticjs模糊滤镜教程
- 更换纹理
- iframe 自适应