纯数学题
/*设所求为n,那么n+a、n+b可以用a、b线性表出,而n不可。 所以 n+a=x1*a+y1*b,n+b=x2*a+y2*b 所以 n=(x1-1)*a+y1*b n=x2*a+(y2-1)*b 因为n不能被线性表出,所以x1=0,y2=0 所以 n+a=y1*b,n+b=x2*a 所以 n+a=y1*b,n+a=(x2+1)*a-b 所以 (x2+1)*a-b是b的倍数 因为a、b互质,所以(x2+1)是b的倍数 因为求最小的n,所以选最小的x2值,所以取(x2+1)为b 所以 n+a=b*a-b,n=a*b-a-b 证毕*/ #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int main() { int t; scanf("%d",&t); while(t--) { long long a,b; scanf("%lld%lld",&a,&b); printf("%lld\n",a*b-a-b); } return 0; }