Cod sursa(job #1558186)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 28 decembrie 2015 20:06:22
Problema Invers modular Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int r,d;
struct sp
{
    int x,y;
};
sp euclid(int a,int b)
{
    sp ans,tm;
    int c;
    if(b!=0)
    {
    c=a/b;
    tm=euclid(b,a%b);
    ans.x=tm.y;
    ans.y=tm.x-tm.y*c;
    return ans;
    }
    else
    {
        ans.x=1;
        ans.y=0;
        d=a;
        return ans;
    }
}
int main()
{
    freopen("inversmodular.in","r",stdin);
    freopen("inversmodular.out","w",stdout);
    int t,q,a,b,r;
    sp ans;
    r=1;
    scanf("%d%d",&a,&b);
    if(b<a)
    ans=euclid(a,b);
    else
    ans=euclid(b,a);
    if(r%d!=0)
    printf("0 0\n");
    else
    if(b<a)
    printf("%d\n",(ans.x%b+b)%b);
    else
    printf("%d\n",(ans.y%b+b)%b);
    return 0;
}