Cod sursa(job #1820089)
Utilizator | Data | 1 decembrie 2016 11:00:46 | |
---|---|---|---|
Problema | Invers modular | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <cstdio>
using namespace std;
void solutzii(int a,int b,int&x,int&y)
{
int xp,yp;
if(!b)
{
x=1;
y=0;
return;
}
solutzii(b,a%b,xp,yp);
int c=a/b;
x=yp;
y=xp-c*yp;
return;
}
int main()
{
FILE *in=fopen("inversmodular.in","r")
,*out=fopen("inversmodular.out","w");
int a,b;
fscanf(in,"%d%d",&a,&b);
int x,y;
solutzii(a,b,x,y);
if(x<0)x+=b;
fprintf(out,"%d\n",x);
return 0;
}