Pagini recente » Diferente pentru problema/aparare intre reviziile 5 si 6 | Diferente pentru utilizator/ando intre reviziile 5 si 6 | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #1257825)
#include <cstdio>
using namespace std;
int n;
long long lgput(int a,int b)
{ if(b==1)
return a;
long long val=lgput(a,b/2);
if(b%2==1)
return val*val%n*a%n;
return val*val%n;
}
int main()
{ freopen("inversmodular.in","r",stdin);
freopen("inversmodular.out","w",stdout);
int a;
scanf("%d%d",&a,&n);
printf("%d",lgput(a,n-2));
return 0;
}