Cod sursa(job #271351)
Utilizator | Data | 5 martie 2009 10:27:41 | |
---|---|---|---|
Problema | Invers modular | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include<stdio.h>
void euclid(int a,int b,int *d,int *x,int *y)
{if(b==0)
{*d=a;
*x=1;
*y=0;
}
else
{int x0,y0;
euclid(b,a%b,d,&x0,&y0);
*x=x0;
*y=x0-(a/b)*y0;
}
}
int main()
{freopen("inversmodular.in","r",stdin);
freopen("inversmodular.out","w",stdout);
int x,y;
int a,b,c=1;
scanf("%d %d",&x,&y);
euclid(x,y,&c,&a,&b);
printf("%d ",a);
fclose(stdout);
fclose(stdin);
}