Cod sursa(job #1640552)

Utilizator mirupetPetcan Miruna mirupet Data 8 martie 2016 18:18:15
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<cstdio>
using namespace std;

FILE *fin = freopen("inversmodular.in","r",stdin);
FILE *fout = freopen("inversmodular.out","w",stdout);

int A, N;
long long sol, s;
void invmod(long long&, long long&, int, int);

int main()
    {
        scanf("%d%d", &A, &N);

        invmod(sol, s, A, N);

        if (sol <= 0)
            sol = N + sol % N;

        printf("%lld", sol);
    }

void invmod(long long &x, long long &y, int a, int b)
{
    if (!b)
        x = 1, y = 0;
    else
    {
        invmod(x, y, b, a % b);
        long long aux = x;
        x = y;
        y = aux - y * (a / b);
    }
}