洛谷P3951 小凯的疑惑

题目简述:

给两个互质的数a,b,要求求一个数N使方程N=ax+by无负数解,x,y为整数


主要是一道数学题,代码非常简单
N=a*b-a-b
证明如下:
由于两数互质,所以gcd(a,b)=1 lcm(a,b)=a*b
如果一个数k可以被表示出,那么k=ax+by
N=ax+by 因为N不能被合法表示出,有N=ax (mod b)
如果N不合法,那么y<0
因为N最大,x最大(mod b)
所以x=b-1 y=-1
则N=a*(b-1)-b
展开得N=ab-a-b
//注意范围,要开long long
#include<iostream>
using namespace std;
int main()
{
    long long a,b;
    cin>>a>>b;
    cout<<a*b-a-b;
    return 0;
}

 

 
 
 
 
posted @ 2019-08-18 20:07  nenT  阅读(105)  评论(0)    收藏  举报