Cod sursa(job #765390)
Utilizator | Data | 7 iulie 2012 13:43:36 | |
---|---|---|---|
Problema | Invers modular | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.36 kb |
#include<cstdio>
int a,n,x,y,z;
void E(int a,int b,int *x,int *y)
{int p,r;
if(!b)
(*x)=1,(*y)=0;
E(b,a%b,&p,&r);
(*x)=r,(*y)=p-(a/b)*r;}
int main()
{freopen("inversmodular.in","r",stdin);
freopen("inversmodular.out","w",stdout);
scanf("%d%d",&a,&n);
E(a,n,&x,&y),z=x;
while(z<1)
z+=n;
while(z>n)
z-=n;
printf("%d",z);
return 0;}