一次生日Party可能有p人或者q人参加,现准备有一个大蛋糕.问最少要将蛋糕切成多少块(每块大小不一定相等),才能使p人或者q人出席的任何一种情况,都能平均将蛋糕分食.
很有意思的一道题,想了半天也不知道怎么算
可以在草稿纸上画一画,一个圆形的蛋糕,p=2,q=3 就先切成两半,然后为了使分块最少,切三块的时候,第一刀,肯定与以前切过的线重合,就可以得到四块的题中的个答案。
再考虑,p=4,q=6;发现可以重合两个边界,切成8块即可。4,6的最大公约数也是2
所以应该是p+q-gcd(p,q)
#include<iostream>
#include<stdio.h>
using namespace std;
int gcd(int a,int b)
{
if(a%b==0)
return b;
else
return gcd(b,a%b);
}
int main()
{
int p,q;
while(cin>>p>>q){
int z=p+q-gcd(p,q);
cout<<z<<endl;
}
return 0;
}