Pagini recente » Cod sursa (job #3220496) | Cod sursa (job #411402) | Cod sursa (job #152179) | Cod sursa (job #1897899) | Cod sursa (job #2639859)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
ll A, N, mod;
ll phi(ll n){
ll ans=n;
for(ll i=2;i*i<=n;i++){
if(n%i==0)
{
ans=ans/i*(i-1);
while(n%i==0) n/=i;
}
}
if(n!=1)
ans=ans/n*(n-1);
return ans;
}
ll put(ll n, ll p){
ll ans=1;
while(p>0){
if(p%2==1)
ans=(ans*n)%mod;
n=(n*n)%mod;
p/=2;
}
return ans;
}
int main()
{
fin>>A>>N;
mod=N;
ll p=phi(N)-1;
ll sol=1;
fout<<put(A,p);
return 0;
}