Cod sursa(job #2909304)
Utilizator | Data | 12 iunie 2022 15:26:59 | |
---|---|---|---|
Problema | Invers modular | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <iostream>
#include <fstream>
using namespace std;
long phi(long x)
{
long n=x;
for(long i=2;i*i<=x;i++)
{
if(!(x%i))
{
while(!(x%i))
x/=i;
n=(n/i)*(i-1);
}
}
if(x!=1)
n=n/x*(x-1);
return n;
}
int main() {
ifstream f("inversmodular.in");
ofstream o("inversmodular.out");
long A,N;
f>>A>>N;
long pwr=phi(N)-1;
long ans=1;
for(long i=1;i<=pwr;i++)
{
ans*= A;
}
o<<(ans%N);
f.close();
o.close();
return 0;
}