Cod sursa(job #1179200)
Utilizator | Data | 28 aprilie 2014 10:44:44 | |
---|---|---|---|
Problema | Invers modular | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <cstdio>
using namespace std;
void ee(int a,int b,int &x,int &y,int &d)
{
if(b==0)
{
x=1;
y=0;
d=a;
return ;
}
int q=a/b,x1,y1;
ee(b,a-q*b,x1,y1,d);
x=y1;
y=x1-q*y1;
}
int main()
{
FILE *in,*out;
in=fopen("inversmodular.in","r");
out=fopen("inversmodular.out","w");
int n,i,j,a,b,x,y,d=1;
fscanf(in,"%d%d",&a,&n);
ee(a,n,x,y,d);
fprintf(out,"%d",(n+x%n)%n);
return 0;
}