B - Cake
HPU专题训练(-1)GCD&&素筛&&快速幂_____B - Cake
一次生日Party可能有p人或者q人参加,现准备有一个大蛋糕.问最少要将蛋糕切成多少块(每块大小不一定相等),才能使p人或者q人出席的任何一种情况,都能平均将蛋糕分食.
Input每行有两个数p和q. Output输出最少要将蛋糕切成多少块. Sample Input
2 3
Sample Output
4
Hint
将蛋糕切成大小分别为1/3,1/3,1/6,1/6的四块即满足要求. 当2个人来时,每人可以吃1/3+1/6=1/2 , 1/2块。 当3个人来时,每人可以吃1/6+1/6=1/3 , 1/3, 1/3块。
/*
假想一个圆是蛋糕
以蛋糕的中心
若有m个人,则将蛋糕以m刀 平均 切m份
若有n个人,则将蛋糕以n刀 平均 切n份
这其中有重复的刀数
重复的刀数就是m和n的最大公约数
即符合题目要求的最少刀数就是:
m+n-gcd(m,n)
*/
#include<stdio.h>
int gcd(int a,int b)
{
return !b?a:gcd(b,a%b);
}
int main()
{
int p,q;
while(scanf("%d %d",&p,&q)!=EOF)
{
printf("%d\n",p+q-gcd(p,q));
}
return 0;
}