Cod sursa(job #2035838)
| Utilizator | Data | 9 octombrie 2017 21:22:00 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll fi(int nr)
{
int var=nr;
for(int i=2; i*i<=nr; ++i)
{
if(nr%i==0)
{
while(nr%i==0)
{
nr=nr/i;
}
}
}
}
ll exp_log(ll a, ll e,ll mod)
{
ll rez=1;
while(e!=0)
{
if(e%2==1)
{
rez=rez*a%mod;
}
a=a*a;
e=e/2;
}
return rez;
}
int main()
{
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");
int a,n;
f>>a>>n;
g<<exp_log(a,n-2,n);
return 0;
}
