扩展欧几里得(求逆元)

昨天看了一下逆元,有费马小定理求逆元,扩展费马小定理求逆元,最重要的是有一个扩展欧几里得求逆元,我只是看了一下,并没有做题,今天做了一下,直接给wrong了,我也是没有话可说了,我还是太水。

题目链接:点击打开链接

代码:

#include
#define  mod 9973
#include
#include 
using namespace std;
int extended_gcd(int a,int b, int &x, int &y)
{
    if (b == 0)
    {
        x = 1;
        y = 0;
        return a;
    }
    else
    {
        int gcd = extended_gcd(b, a % b, x, y);
        int t = x;
        x = y;
        y = t - (a / b) * y;
        return gcd;
    }
}
//int main()
//{
//    int i, x, y;
//    const int P = 13;
//    for (i = 1; i < P; ++i)
//    {
//        extended_gcd(i, P, x, y);
//        while (x < 0) x += P;
//        printf("1 div %d = %d\n", i, x);
//    }
//    return 0;
//}
//int main()
//{
//    LL a, b, t;
//    scanf("%lld",&t);
//    while(t--)
//    {
//        scanf("%lld%lld",&a,&b);
//        LL ans = cal(a, b, 1);
//        if(ans == -1)
//        {
//            printf("Not Exist\n");
//            continue;
//        }
//        printf("%lld\n",ans);//x
//    }
//    return 0;
//}
//int  extgcd(int a,int b,int &x,int &y)
//{
//    int d=a;
//    if(b!=0)
//    {
//        d=extgcd(b,a%b,y,x);
//        y-=(a/b)*x;
//
//    }
//    else
//
//    {
//        x=1;
//        y=0;
//    }
//    return d;
//}
int sum[100010],q[100010];
char w[100010];
int main()
{


    for(int i=1; i
原来写了一个模板,是扩展欧几里得,后来不知道怎么就错了,我也是不知道怎么回事,那个模板好像是求求解线性方程时候的模板,然后就错了,我还是太水。

你可能感兴趣的:(扩展欧几里得(求逆元))