Pagini recente » Cod sursa (job #1024876) | Cod sursa (job #1350131) | Cod sursa (job #1946853) | Autentificare | Cod sursa (job #596541)
Cod sursa(job #596541)
#include <stdio.h>
int Euclid3(int a,int b,int *x,int *y)
{
int d;
int c[1000];
int i=-1;
int r;
while(b!=0){
r=a%b;
c[++i]=a/b;
a=b;
b=r;
}
d=a;
if(i>0){
--i;
*x = 1;
*y = -c[i];
--i;
int aux;
while(i>=0)
{
aux = *x;
*x = *y;
*y = aux -c[i]*(*y);
--i;
}
}
else if(i==0){
*x=0;
*y=1;
}
else if(i==-1){
*x=1;
*y=0;
}
return d;
}
int main(int argc,char* argv[])
{
int A=5,N=7;
int x,y;
FILE *fpr,*fpw;
fpr = fopen("inversmodular.in","r");
fpw = fopen("inversmodular.out","w");
fscanf(fpr,"%d %d",&A,&N);
Euclid3(A,N,&x,&y);
fprintf(fpw,"%d",x);
fclose(fpr);
fclose(fpw);
return 0;
}