Pagini recente » Cod sursa (job #2278540) | Cod sursa (job #1311097) | Cod sursa (job #1746369) | Cod sursa (job #1129974) | Cod sursa (job #3225616)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
#define LL long long
LL Phi(LL nr)
{
LL cur = nr;
for(LL i = 2;i * i <= nr; ++i)
{
if (nr % i == 0)
{
while(nr % i == 0)
nr /= i;
cur = (cur / i) * (i - 1);
}
}
if (nr != 1)
cur = cur / nr * (nr - 1);
return cur;
}
long long MOD;
int Putere(int A , int n)
{
if(n == 0)
return 1;
if(n % 2 == 1)
return A * Putere(A , n - 1);
int P = Putere(A , n / 2);
return P * P;
}
int main()
{
long long n;
fin>>n>>MOD;
LL x;
x=Phi(n);
fout<<(LL)pow(n,x-1)%MOD;
return 0;
}