Pagini recente » Cod sursa (job #293307) | Cod sursa (job #3259140) | Cod sursa (job #2774915) | Cod sursa (job #3158990) | Cod sursa (job #2173077)
// Pentru N - prim
#include <fstream>
using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
int a,n;
long long lgput(long long n, long long k, long long MOD) {
long long m=1;
while(k>1) {
if (k%2==0) {
k=k/2;
n=( (n%MOD) * (n%MOD))%MOD;
}
else {
--k;
m=( (m%MOD) * (n%MOD))%MOD;
}
}
return ( (m%MOD) * (n%MOD))%MOD;
}
long long inversmodular(long long a,long long n) {
return lgput(a,n-2,n);
}
int main() {
f>>a>>n;
g<<inversmodular(a,n)<<'\n';
f.close(); g.close();
return 0;
}