Pagini recente » Cod sursa (job #3272963) | Cod sursa (job #2856407) | Cod sursa (job #3241378) | Cod sursa (job #3232593) | Cod sursa (job #3280701)
#include <fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
int Phi(int n);
long long int exponentiere(int x,int n);
int a,mod;
int main()
{
fin>>a>>mod;
fout<<exponentiere(a,Phi(mod)-1)<<'\n';
return 0;
}
int Phi(int n)
{
int d,f;
f=1;
for(d=2;d*d<=n;d++)
{
if(n%d==0)
{
while(n%d==0)
{
f*=d;
n/=d;
}
f/=d; f*=(d-1);
}
}
if (n>1) f*=(n-1);
return f;
}
long long int exponentiere(int x,int n)
{
long long int a;
if(n==0) return 1;
if(n%2==1) return x*exponentiere(x,n-1)%mod;
a=exponentiere(x,n/2);
return (a*a)%mod;
}