UVA 10780 - Again Prime No Time
2013-09-05 14:44
239 查看
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.
代码:
原题大意:已知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 C - 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.
- Uva10780 Again Prime? No Time.
- UVa 10780 (质因数分解) Again Prime? No Time.
- Uva 10780 Again Prime? No time. 解题报告(数学)
- UVA10780 - 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. (质因子分解)