Cod sursa(job #1892655)

Utilizator onescu.iancuOnescu Iancu onescu.iancu Data 25 februarie 2017 10:46:16
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <cstdio>

#define ll long long

using namespace std;


///Euclid extins si x e a-1
///^^^^^^^^^^^^^^^^^^^^^^^^

long long a, n, k, l;

void EuclidExtins(ll a, ll b, ll &k, ll &l)
{
    if(b==0)
        k=1, l=0;
    else
    {
        long long kp, lp;
        EuclidExtins(b, a%b, kp, lp);
        k=lp;
        l=kp-lp*(a/b);
    }
}


void Citire()
{
    freopen("inversmodular.in", "r", stdin);
    freopen("inversmodular.out", "w", stdout);
    scanf("%d %d", &a, &n);

    EuclidExtins(a, n, k, l);

    while(k<0)
        k=n+k%n;
    cout<<k;
}

int main()
{
    Citire();
    return 0;
}