Pagini recente » Cod sursa (job #3164943) | Cod sursa (job #545129) | Cod sursa (job #2549238) | Cod sursa (job #2135743) | Cod sursa (job #3136220)
#include<stdio.h>
int a[200],b[200],inv[200],aux[200],n;
int inversmod()
{
FILE *f=fopen("inversmodular.in","r");
f=fopen("inversmodular.out","w");
int a[200],b[200];
int inv[200],aux[200];
int n;
fscanf(f,"%d%d",&a[1],&b[1]);
int c=1;
int i=1;
while(b[i])
{
a[i+1]=b[i];b[i+1]=a[i]%b[i];i++;
}
aux[n]=0;
n=i;
inv[n]=c/a[n];
for(i=n-1;i>=1;i--)
{
inv[i]=aux[i+1];
aux[i]=inv[i+1]-(a[i]/b[i])*aux[i+1];
}
while(inv[1]>=b[1])
inv[1]=inv[1]-b[1];
while(inv[1]<0)
inv[1]=inv[1]+b[1];
return inv[1];
}
int main()
{
int invers_modular=inversmod();
FILE *f=fopen("inversmodular.out","w");
fprintf(f,"%d",invers_modular);
return 0;
}