NYOJ40 公约数和公倍数

来源:互联网 发布:3d红五图库永久域名 编辑:程序博客网 时间:2024/04/30 13:12

公约数和公倍数

时间限制: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

这是一道十分经典的题目,利用了殴几里德算法(即辗转相除法)。

#include<stdio.h>int main(void){int N,temp,m,n,a,b,i;scanf("%d",&N);for(i=1;i<=N;i++){scanf("%d%d",&m,&n);a=m;b=n;while(n!=0){temp=m%n;m=n;n=temp;}printf("%d %d\n",m,a*b/m);}return 0;}        

0 0