最大公约数和最小公倍数 UVa11388

1.题目描述:点击打开链接

2.解题思路:本题通过观察发现,如果两个数a,b的最大公约数是G,那么G≤a且G≤b。因此直接令a=G即可。如何判断是否有解呢,,只需要看是否满足gcd(G,L)==G就行了。如果满足,b=L。

3.代码:

#define _CRT_SECURE_NO_WARNINGS #include<iostream>#include<algorithm>#include<string>#include<sstream>#include<set>#include<vector>#include<stack>#include<map>#include<queue>#include<deque>#include<cstdlib>#include<cstdio>#include<cstring>#include<cmath>#include<ctime>#include<functional>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair<int, int> P;typedef pair<long long, long long> PL;#define me(s) memset(s,0,sizeof(s))#define For(i,n) for(int i=0;i<(n);i++)int gcd(int a,int b){return b == 0 ? a : gcd(b, a%b);}int main(){//freopen("t.txt", "r", stdin);int g, l;int T;scanf("%d", &T);while (T–){cin >> g >> l;int gg = gcd(g, l);if (gg == g)printf("%d %d\n", g, l);else puts("-1");}return 0;}

要铭记在心;每天都是一年中最美好的日子

最大公约数和最小公倍数 UVa11388

相关文章:

你感兴趣的文章:

标签云: