Pagini recente » Istoria paginii utilizator/butnaru_vlad | Cod sursa (job #2498832) | Cod sursa (job #834131) | Cod sursa (job #2077182) | Cod sursa (job #1396860)
#include <stdio.h>
using namespace std;
FILE *f,*g;
int main()
{
long long a,n,n1,x=1,y=0,u=0,v=1,u1,v1,r,q;
f=fopen("inversmodular.in","r");
g=fopen("inversmodular.out","w");
fscanf(f,"%lld %lld",&a,&n);
n1=n;
while (n)
{
q=a/n; r=a%n;
u1=x-u*q; v1=y-v*q;
a=n; n=r; x=u; y=v; u=u1; v=v1;
}
if (x<0) x=n1+x%n1;
fprintf(g,"%lld\n",x);
fclose(f);
fclose(g);
return 0;
}