nyoj144 小珂的苦恼

来源:互联网 发布:java观察者模式和监听 编辑:程序博客网 时间:2024/04/29 23:43

题目:点击打开链接

 

解体思路:看到ax+by=n就很容易联想到ax+by=gcd(a,b).

这是扩展欧几里得算法。

扩展欧几里得算法:对于不全为0ab,一定有一个整数对且唯一使得ax+by=gcd(a,b),

那这里a,b为都不为零,问是否有上面那个式子成立,这就好做了。

只要看n%gcd(a,b)是否为0即可。

 

代码:

#include<stdio.h> int gcd(int a, int b) {return b ? gcd(b, a % b) : a;} int main() {int nCase, a, b, n;scanf("%d",&nCase); while (nCase--) {scanf("%d%d%d",&a,&b,&n); if (a < b) {a^=b;b^=a;a^=b;} n % gcd(a, b) ? puts("No") : puts("Yes");} return 0;}

0 0