Cod sursa(job #3251663)
Utilizator | Data | 26 octombrie 2024 13:35:17 | |
---|---|---|---|
Problema | Invers modular | Scor | 60 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
long long n,x,a;
long long invmod(long long x, long long n, long long mod){
if(n==0){
return 1;
}
else{
if(n%2==1){
return (x%mod*invmod(x,n-1,mod)%mod)%mod;
}
else{
long long p=invmod(x,n/2,mod)%mod;
return 1LL*((p%mod)*(p%mod))%mod;
}
}
}
int main()
{
fin>>a>>n;
x=invmod(a,n-2,n);
fout<<x;
return 0;
}