hnust 分蛋糕
问题 B: 分蛋糕
时间限制: 1 Sec 内存限制: 128 MB提交: 2430 解决: 966
[提交][状态][讨论版]
题目描述
今天是DK生日,由于DK的朋友很多,所以DK在蛋糕店定制了一个矩形的特大号蛋糕。但问题是DK想将蛋糕均匀地分成正方形小块给每位朋友,并且使得正方形小块的面积尽可能最大,又能让其特大号矩形蛋糕恰好分完。给出特大号矩形蛋糕的两条边长分别为X,Y。求分得的最多块数。
输入
输入数据有多组,第一行输入一个正整数N<=1000为数据组数,接下来一行为两个正整数数X和Y。(1<=X,Y<=10000);
输出
对于每组X,Y,输出分得的最多的块数。每组输出占一行。
样例输入
2
2 5
2 8
样例输出
10
4
求出最大公约数,然后用最小公倍数除以最小公约数。
#include <cstdio> int gcdd(int a,int b) { if(b==0) return a; return gcdd(b,a%b); } int main() { int t,x,y,a,b,c; scanf("%d",&t); while(t--) { scanf("%d%d",&x,&y); if(x<y) {c=x;x=y;y=c;} c=gcdd(x,y); printf("%d\n",x*y/c/c); } return 0; }