Cod sursa(job #2056902)
Utilizator | Data | 4 noiembrie 2017 13:42:03 | |
---|---|---|---|
Problema | Invers modular | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <iostream>
#include <stdio.h>
using namespace std;
int n , MOD;
void r()
{
freopen("inversmodular.in","r",stdin);
scanf("%d%d",&n,&MOD);
}
int invers(int x)
{
int sol=1,putere=MOD-2;
while(putere)
{
if(putere & 1 )sol=(1LL*sol*x)%MOD,--putere;
x=(1LL*x*x)%MOD;
putere>>=1;
}
return sol%MOD;
}
int main()
{
r();
freopen("inversmodular.out","w",stdout);
printf("%d",invers(n));
return 0;
}