Pagini recente » Istoria paginii utilizator/1qazxsw2 | Cod sursa (job #1565953) | Cod sursa (job #1306775) | Cod sursa (job #797582) | Cod sursa (job #1849890)
#include <fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
int n,a;
void inv_mod(long long &x, long long &y, int a, int b)
{
if(!b)
{
x=1;
y=0;
}
else
{
inv_mod(x,y,b,a%b);
swap(x,y);
y-=x*(a/b);
}
}
int main()
{
long long inv=0,ins;
fin>>a>>n;
fin.close();
inv_mod(inv,ins,a,n);
if(inv<=0)
inv=n+inv%n;
fout<<inv;
fout.close();
return 0;
}