Cod sursa(job #1396890)
| Utilizator | Data | 23 martie 2015 09:27:45 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <iostream>
#include<stdio.h>
using namespace std;
FILE *f,*g;
int main()
{
long long i,j,m,n,q,r,u1,v1,a,x=1,u=1,y=0,v=0,n1;
f=fopen("inversmodular.in","r");
g=fopen("inversmodular.out","w");
fscanf(f,"%lld %lld",&a,&n);
n1=n;
while(n!=0)
{
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",&x);
fclose(f);
fclose(g);
return 0;
}
