Pagini recente » Cod sursa (job #2890548) | Cod sursa (job #2858613) | Cod sursa (job #793897) | Cod sursa (job #1137882) | Cod sursa (job #3225635)
#include <fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
bool prim(int n)
{
if(n<2 || !(n&1) && n!=2)
return 0;
if(n==2)
return 1;
for(int d=3; d*d<=n; d+=2)
if(n%d)
return 0;
return 1;
}
long long fastExpo(int p, int e, int mod)
{
long long sol=1, a=p%mod;
for(int k=1; k<=e; k<<=1)
{
if(e&k) sol*=a%mod;
a*=a%mod;
}
return sol%mod;
}
int main()
{
int a, n;
fin >> a >> n;
if(prim(n))
{
fout << fastExpo(a,n-2,n);
}
return 0;
}