Pagini recente » Cod sursa (job #1741547) | Cod sursa (job #2754752) | Cod sursa (job #3256623) | Cod sursa (job #3171227) | Cod sursa (job #1642555)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("inversmodular.in");
ofstream fout ("inversmodular.out");
void euclid(int a, int b, long long &x, long long &y)
{
long long xx, yy;
if(b==0)
{
x=1, y=0;
return;
}
euclid(b, a%b, xx, yy);
x=yy;
y=xx-yy*(a/b);
}
long long inv_mod (int a, int n)
{
long long inv, ins;
euclid(a, n, inv, ins);
if(inv<=0) inv=n+(inv%n);
return inv;
}
int main()
{
ios_base::sync_with_stdio(false);
int a, n;
long long inv=0, ins;
fin >> a >> n;
fout << inv_mod(a, n);
fin.close();
fout.close();
return 0;
}