題目:點擊打開鏈接
解體思路:看到ax+by=n就很容易聯想到ax+by=gcd(a,b).
這是擴展歐幾里得算法。
擴展歐幾里得算法:對於不全爲0的a和b,一定有一個整數對且唯一使得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;
}