Cod sursa(job #1364441)
Utilizator | Data | 27 februarie 2015 17:53:50 | |
---|---|---|---|
Problema | Invers modular | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.39 kb |
#include <fstream>
#include <algorithm>
#include <vector>
#include <cstring>
#include <map>
#include <set>
using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
int i,j,b,c;
long long int d,a=1,n,m;
int main()
{
f>>n>>m;
b=m-2;d=n;
for(i=0;(1<<i)<=b;i++,d=d*d%m)
if((1<<i)&b)
a=(a*d)%m;
g<<a%m;
return 0;
}