Pagini recente » Cod sursa (job #1671061) | Cod sursa (job #470102) | Cod sursa (job #1083311) | Cod sursa (job #46296) | Cod sursa (job #2605624)
#include <bits/stdc++.h>
using namespace std;
ifstream ci ("inversmodular.in");
ofstream co ("inversmodular.out");
int putere (int a,int n,int m)
{
int p=1;
while (n)
{
if (n%2!=0)
{
p=p*a%m;
}
n/=2;
a=a*a%m;
}
return p;
}
int main()
{
int a,n,b,d=2;
ci >> a >> n;
b=n;
while (d*d<=n)
{
if(n%d==0)
{
b=b/d*(d-1);
while (n%d==0)
{
n/=d;
}
}
d++;
}
if(n>1 && b!=n)
{
b=b/d*(d-1);
}
if (b==n)
{
b-=1;
}
co << putere(a,b-1,n);
return 0;
}