Cod sursa(job #2166687)
| Utilizator | Data | 13 martie 2018 18:25:08 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
///invers modular
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
long long a, b;
long long ridicareput(long long n, long long p, long long mod)
{
long long ans = 1;
while(p)
{
if(p%2)
{
--p;
ans = (ans * n) % mod;
}
p /= 2;
n = (n * n) % mod;
}
return ans;
}
int main()
{
f >> a >> b;
g << ridicareput(a, b - 2, b) % b << '\n';
}
