#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<string>
#define INF 99999999
#define LL long long
using namespace std;
LL gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
LL extgcd(LL a,LL b,LL &x,LL &y)//返回a和b的最大公约数
{
if(b==0)
{
x=1;y=0;
return a;
}
LL q=extgcd(b,a%b,x,y);
LL t=x;x=y;y=t-(a/b)*y;
return q;
}
LL finv(LL a,LL m)//最小逆元
{
LL x,y;
LL g=extgcd(a,m,x,y);
x=(x%m+m)%m;
return x;
}
int main()
{
/*
if(c%d!=0)
printf("FOREVER\n");
else
{
x=x*(c/d);
LL t=b/d;
x=(x%t+t)%t;//求最小非负x
printf("%lld\n",x);
}
*/
return 0;
}
更多:http://blog.youkuaiyun.com/zhjchengfeng5/article/details/7786595扩展欧几里得及逆元模板
最新推荐文章于 2021-05-12 09:35:20 发布