Cod sursa(job #1110741)
Utilizator | Data | 18 februarie 2014 12:53:24 | |
---|---|---|---|
Problema | Invers modular | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.39 kb |
#include <fstream>
#define ll long long
using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
ll N, A;
ll logexp(ll baza, ll exponent)
{
ll res=1;
while (exponent)
{
if (exponent%2) res*=baza, res%=N;
exponent/=2; baza*=baza; baza%=N;
}
return res;
}
int main()
{
f>>A>>N;
g<<logexp(A, N-2)<<'\n';
}