Cod sursa(job #1327597)
Utilizator | Data | 26 ianuarie 2015 21:26:23 | |
---|---|---|---|
Problema | Invers modular | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include<fstream>
using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
int a,n;
long long int e,r;
void invmod(int a, int n,long long int &e,long long int &r)
{
if(n==0)
{
e=1;
r=0;
}
else
{
invmod(n,a%n,e,r);
int t=e;
e=r;
r=t-(a/n)*r;
}
}
int main()
{
f>>a>>n;
invmod(a,n,e,r);
e=e%n;
if(e<0)
e+=n;
g<<e;
}