Pagini recente » Cod sursa (job #2634142) | Cod sursa (job #453644) | Cod sursa (job #918934) | Cod sursa (job #1194045) | Cod sursa (job #1632123)
#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(ans!=1)
ans-=ans/N;
return ans;
}
int main(){
fin >> A >> N;
pow = getphi(N)-1;
ans = 1;
while(pow){
if(pow&1)
ans=(ans*A)%N;
A=(A*A)%N;
pow>>=1;
}
fout << ans << "\n";
}