摘要:优化
原题来自蓝桥杯:
题目描述
1 | 已知正整数a0,a1,b0,b1。设某未知正整数x 满足: |
重要结论
两个需要知道的关于最大公约数和最小公倍数的结论。
最大公约数:如果gcd(x,y)=z,那么gcd(x/z,y/z)=1
最小公倍数:lcm(x,y)=z
①如果lcm(x,y)=z,那么gcd(z/y,z/x)=1。
这个我们来证明一下:我们设lcm(x,y)=z,那么lcm(x,y)=x*y/gcd(x,y)=z,所以gcd(x,y)=x*y/z。由最大公约数结论可得,gcd(z/y,z/x)=1。②如果y是x的公倍数,则x是y的因数,也就是y % x == 0。
由上面几条结论可得,x一定是b1的因数,而且x % a1 == 0,gcd(x/a1 ,a0/a1) == 1,gcd(b1/b0 ,b1/x) == 1。
那么我们就可以枚举b1的因数,然后判断了
1 |
|