Pagini recente » Cod sursa (job #3215821) | Cod sursa (job #324399) | Cod sursa (job #397582) | Cod sursa (job #1061373) | Cod sursa (job #3152991)
#include <bits/stdc++.h>
using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
int64_t MOD;
int64_t a;
int64_t phi(int64_t n)
{
int64_t ph=n;
for(int64_t p=2; p*p<=n; p++)
if(n%p==0)
{
ph=ph/p*(p-1);
while(n%p==0)
n/=p;
}
if(n>1)
ph=ph/n*(n-1);
return ph;
}
int64_t putere(int64_t b,int64_t e)
{
if(e==0)
return 1LL;
int64_t r=putere(b,e/2);
r=r*r%MOD;
if(e%2==1)
r=r*b%MOD;
return r;
}
int main()
{
f>>a>>MOD;
g<<putere(a,phi(MOD)-1)<<'\n';
return 0;
}