Pagini recente » Cod sursa (job #317255) | Cod sursa (job #2475268) | Cod sursa (job #2739904) | Cod sursa (job #1635066) | Cod sursa (job #2365798)
#include<fstream>
using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
int phi(long long m)
{
long long k=m,i;
for(i=2;i*i<=m;i++)
if(m%i==0)
{
while(m%i==0)m/=i;
m=m/i*(i-1);
}
if(m!=1)
k=k/m*(m-1);
return k;
}
int main()
{
long long a,n,p,rez;
f>>a>>n;
p=phi(n)-1;
rez=1;
while(p)
{
if(p&1) rez=rez*a%n;
a=a*a%n;
p/=2;
}
g<<rez;
}