公约数和公倍数

来源:互联网 发布:软件测试时间安排 编辑:程序博客网 时间:2024/04/30 11:47

公约数和公倍数

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述
小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。
输入
第一行输入一个整数n(0<n<=10000),表示有n组测试数据;
随后的n行输入两个整数i,j(0<i,j<=32767)。
输出
输出每组测试数据的最大公约数和最小公倍数
样例输入
36 612 1133 22
样例输出
6 61 13211 66
数论的最大公约数*最小公倍数=i*j;
我的代码:
#include <iostream>#include <cstdlib>#include <algorithm>using namespace std;int gcd(int m,int k){while (m){k=k%m;swap(k,m);}return k;}int main(){long long sum;    int n,m,k;cin >> n;while (n--){cin >> m >> k;if (m>k){swap(m,k);}sum = m*k;cout << gcd(m,k) << " " << sum/gcd(m,k) << endl; }return 0;}
标程:
 #include<stdio.h>int main(){unsigned int u,v,r,s,i,d;scanf("%u",&s);for(i=1;i<=s;i++){scanf("%u%u",&u,&v);d=u*v;while(v!=0){r=u%v;u=v;v=r;}printf("%u %u\n",u,d/u);}return 0;}        



0 0
原创粉丝点击