Cod sursa(job #1881744)

Utilizator gabib97Gabriel Boroghina gabib97 Data 16 februarie 2017 18:25:30
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <stdio.h>
#include <vector>
#define ll long long
using namespace std;

int n,a;
ll x,y;

void invers_modular(int a,int b,ll &x,ll &y)
{
    if (!b) x = 1,y = 0;
    else
    {
        ll x0,y0;
        invers_modular(b,a%b,x0,y0);
        x = y0;
        y = x0 - (a/b) * y0;
    }
}

int main()
{
    freopen ("inversmodular.in","r",stdin);
    freopen ("inversmodular.out","w",stdout);
    scanf("%i%i",&a,&n);
    invers_modular(a,n,x,y);
    if (x <= 0) x = n + x%n;
    printf("%lld",x);
    fclose(stdin);
    fclose(stdout);
    return 0;
}