扩展欧几里得及逆元模板

来源:互联网 发布:致知格物是什么意思 编辑:程序博客网 时间:2024/05/16 14:04
#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.csdn.net/zhjchengfeng5/article/details/7786595