1798 - 求最大公约数和最小公倍数
给出两个正整数,求出它们的最大公约数和最小公倍数。
题目输入
第一行输入一个整数n(0<n<=10000),表示有n组测试数据;
随后的n行输入两个整数i,j(0<i,j<=32767)。
题目输出
输出每组测试数据的最大公约数和最小公倍数。
输入/输出样例
题目输入
3 6 6 12 11 33 22
题目输出
6 6 1 132 11 66
C语言解答
#include <stdio.h> int gcd(int m, int n){ return (n>0) ? gcd(n, m%n) : m; } int lcm(int m, int n){ return m * n / gcd(m,n); } int main(){ int n,a,b,c; scanf("%d",&n); while(n--){ scanf("%d %d",&a, &b); printf("%d %d\n", gcd(a, b), lcm(a, b)); } return 0; }
C++解答
#include<iostream> using namespace std; int gcd(int a,int b){ if(b==0) return a; else return gcd(b,a%b); } int main(){ int n; cin>>n; while(n--){ int a,b,max,min; cin>>a>>b; min=gcd(a,b); max=a*b/min; cout<<min<<" "<<max<<endl; } }