Pagini recente » Cod sursa (job #1462930) | Cod sursa (job #405426) | Cod sursa (job #386153) | Cod sursa (job #1038101) | Cod sursa (job #2290504)
#include <fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
typedef long long Int;
const Int MOD = 1999999973LL;
inline int produs(Int x,Int y){return x*y%MOD;}
inline int putere(int b,int e)
{
if(e==0)
return 1;
int r=putere(b,e/2);
r=produs(r,r);
if(e%2)
r=produs(r,b);
return r;
}
Int n,a,m,sol,phi,p,q;
int main()
{
fin>>a>>n;
m=n;
phi=1;
for(p=2;p*p<=n;p++)
if(m%p==0)
{
m/=p;phi*=p-1;
while(m%p==0)
{
m/=p;
phi*=p;
}
}
sol=putere(a,phi-1);
fout<<sol;
return 0;
}