Cod sursa(job #742818)
Utilizator | Data | 1 mai 2012 18:51:05 | |
---|---|---|---|
Problema | Invers modular | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.43 kb |
#include<cstdio>
#include<algorithm>
using std::pair;
using std::make_pair;
pair<int,int> egcd (int a,int b)
{
if(!b)
return make_pair (1,0);
int q=a/b;
int r=a%b;
pair<int,int> pr=egcd (b,r);
int s=pr.first;
int t=pr.second;
return make_pair (t,s-q*t);
}
int main()
{
freopen ("inversmodular.in","r",stdin);
freopen ("inversmodular.out","w",stdout);
int a,n;
scanf ("%d%d",&a,&n);
printf ("%d",egcd (a,n).first);
return 0;
}