uva 11889
来源:互联网 发布:万能视频下载 mac 编辑:程序博客网 时间:2024/04/29 11:56
给出a,c 求出最小的b .
利用质因数分解的思想拆开a和c的因子,然后凑出b
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>#include <algorithm>using namespace std;typedef long long ll;const int maxn=1e4+5;int prime[maxn],len=0;bool vis[maxn];void pri(){ for(int i=2; i<maxn; i++) { if(!vis[i]) prime[len++]=i; for(int j=0; j<len&&i*prime[j]<maxn; j++) { vis[i*prime[j]]=1; if(i%prime[j]==0) break; } }}int main(){ pri(); int t; scanf("%d",&t); while(t--) { int a,c; scanf("%d%d",&a,&c); if(c%a) printf("NO SOLUTION\n"); else { int en=sqrt(a+0.5),ans=1; for(int i=0; i<len&&prime[i]<=en; i++) { int cou1=0,cou2=0; while(c%prime[i]==0) { c/=prime[i]; ans*=prime[i]; cou1++; } while(a%prime[i]==0) { a/=prime[i]; cou2++; } if(cou2==cou1) { while(cou2--) { ans/=prime[i]; } } } int cou1=0; if(a>1) while(c%a==0) { cou1++; c/=a; ans*=a; } if(cou1==1) ans/=a; ans*=c; printf("%d\n",ans); } } return 0;}
a=p1^e1*p2^e2...
b=p1^k1*p2^k2..
假设e1>k1,k2>e2.
c=p1^(max(e1,k1))*p2^(max(k2,e2))...
c/a=p1^(e1-k1) * p2^(k2-e2)
e1>k1 那么b中就的k1取0. 因为对lcm无影响同时做到最小.
k2-e2 我们要求出b就要+回一个e2.但是 可能 k2-e2<e2 ,g=gcd(c/a,a)=p2^(k2-e2). c/a*g<b;
所以我们不能一步到位求出b。这个时候我们可以减小a中p2的次幂,加到b中。直到两个数互质
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>#include <algorithm>using namespace std;typedef long long ll;int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int main(){ int t; scanf("%d",&t); while(t--) { int a,c; scanf("%d%d",&a,&c); if(c%a) printf("NO SOLUTION\n"); else { int ans=c/a,g=gcd(a,ans); while(g!=1) { ans*=g; a/=g; g=gcd(ans,a); } printf("%d\n",ans); } }}
0 0
- UVa 11889
- uva 11889
- UVA 11889
- uva 11889
- Uva 11889 - Benefit
- uva 11889 - Benefit
- UVa 11889 Benefit (数论)
- UVA 11889 - Benefit
- UVA 11889 Benefit
- UVA - 11889 Benefit
- UVa 11889 - Benefit
- UVA 11889 Benefit
- UVa 11889 Benefit
- uva 11889 Benefit
- UVA 11889-Benefit
- UVa 11889 - Benefit
- uva 11889 GCD
- UVA 11889 - Benefit
- Spring事务的传播行为
- 去掉android的屏幕上title bar的三种方法
- Hibernate各种关联映射关系梳理
- JFinal 实现jQuery EasyUI ComboTree数据加载并收起菜单节点
- 获取指定content中第一张图片路径
- uva 11889
- 海量数据处理面试题集锦
- viewPager+fragment取消预加载+及每次加载都要求请求
- git创建与使用步骤
- 关于编码格式的总结
- 格蕾丝·赫柏
- 【沙龙干货分享】你要知道的N个Android适配问题
- attr陷阱
- bit-map 详解