Pagini recente » Cod sursa (job #816459) | Cod sursa (job #1778376) | Cod sursa (job #2771237) | Cod sursa (job #2703702) | Cod sursa (job #1632130)
#include <fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
int A,N,ans,pow;
int getphi(int N){
int ans=N;
for(int i=2;i*i<=N;i++)
if(N%i==0){
while(N%i==0)
N/=i;
ans-=ans/i;
}
if(N!=1)
ans-=ans/N;
return ans;
}
int main(){
fin >> A >> N;
pow = getphi(N)-1;
pow%=N;
ans = 1;
while(pow){
if(pow&1)
ans=(ans*A)%N;
A=(A*A)%N;
pow/=2;
}
fout << ans << "\n";
}