Cod sursa(job #1470448)
Utilizator | Data | 11 august 2015 10:46:51 | |
---|---|---|---|
Problema | Invers modular | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <cstdio>
using namespace std;
long long a,n,x0,x1,r,c,x,aux;
int main()
{
freopen("inversmodular.in","r",stdin);
freopen("inversmodular.out","w",stdout);
scanf("%lld%lld",&a,&n);
aux=n;
x0=0;
x1=1;
while(a!=0)
{
r=n%a;
c=n/a;
n=a;
a=r;
x=x0-x1*c;
x0=x1;
x1=x;
}
if(x0<=0)
x0=aux+x0%aux;
printf("%lld\n",x0);
return 0;
}