YSG---一道数论

题面

ysg,yxy,azw 三人正在刷题。 他们每做一题的时间都是一个有理数。如果在某一时刻,三人同时做完一道 题,那么,他们会开始谈笑风生。 现在,他们想知道,从时刻 0 开始,至少要等多久才能谈笑风生。 输入格式 一行 6 个整数 a1,b1,a2,b2,a3,b3,其中 ysg 每做一道题的时间是 a1/b1,yxy 是 a2/b2,azw 是 a3/b3。不保证 a,b 互质。 输出格式 一行 2 个数 c,d,表示第一次谈笑风生是在时刻 c/d。其中 c,d 互质。 输入样例 3 6 4 5 3 1 输出样例 12 1 样例解释 在时刻 12,ysg 做了 24 道题,yxy 做了 15 道题,azw 做了 4 道题,他们开始 谈笑风生。 备注 对于 30%的数据,b1=b2=b3=1。 对于 100%的数据,a1,a2,a3,b1,b2,b3<=100

 这道题我一开始的想法是:只考虑分子。因为分数的单位是 时间/题,而我要求的就是最小时间。所以我只需求出分子的最小公倍数,这样就可以保证答案除以分数时是整数。

但是我忽略了一个问题。刚才的想法没有错,分母没有公因数时这么做没有问题。但是当分母有公因数时,这样求出来的结果就会偏大。正确答案应该将分母的最大公因数除去。

所以做法是:求出分子的最小公倍数和分母最大公约数,约分后即是答案。

代码不附。

你可能感兴趣的:(数论)