Cod sursa(job #3214797)
Utilizator | Data | 14 martie 2024 14:15:31 | |
---|---|---|---|
Problema | Invers modular | Scor | 60 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include<bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
long long n, m;
long long ridput(long long a, long long b, long long MOD)
{
long long ans = 1;
while(b)
{
if(b % 2)
ans *= a;
a *= a;
b = b >> 1;
a %= MOD;
ans %= MOD;
}
return ans;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
freopen("inversmodular.in", "r", stdin);
freopen("inversmodular.out", "w", stdout);
cin >> n >> m;
cout << ridput(n, m - 2, m);
}