Pagini recente » Cod sursa (job #2715467) | Cod sursa (job #2076969) | Cod sursa (job #772267) | Cod sursa (job #181757) | Cod sursa (job #2106537)
/// invers modular
/// inversul modular al lui a este a^(b - 2)%b unde n e prim
/// se foloseste la calculul combinarilor
#include <iostream>
#include <fstream>
#include <utility>
#include <algorithm>
#define mod 666013
#define m 1999999973
///#define f cin
///#define g cout
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 a = n, ans = 1;
for(int i = 0; (1<<i) <= p; ++i)
{
if(((1<<i) & p) > 0) ans = (ans * a) % m;
a = (a * a) % m;
}
return ans;
}
int main()
{
f >> a >> b;
g << ridicareput(a, b - 2) % b; /// il ridic pe a la b - 2 si fac asta mod b
return 0;
}