Pagini recente » Cod sursa (job #2243583) | Cod sursa (job #2792542) | Cod sursa (job #181693) | Cod sursa (job #1479165) | Cod sursa (job #3194617)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
int phi(int n)
{
int r = n , d = 2;
while(n > 1)
{
if(n % d == 0)
{
r = r / d * (d - 1);
while(n % d == 0)
n /= d;
}
d ++;
if(d * d > n)
d = n;
}
return r;
}
long long pow(long long a,long long b)
{
if(b==0)return 1;
if(b%2==1)return a*pow(a,b-1);
int P=pow(a,b/2);
return P*P;
}
int main()
{
long long x,y;
fin>>x>>y;
long long a=phi(y);
fout<<pow(x,a-1)%y;
return 0;
}