Pagini recente » Cod sursa (job #611673) | Cod sursa (job #1308137) | Cod sursa (job #15204) | Cod sursa (job #1225205) | Cod sursa (job #2254611)
#include <iostream>
#include <fstream>
#include <stdlib.h>
std::ifstream in("inversmodular.in");
std::ofstream out("inversmodular.out");
using namespace std;
long long euclid(long long a,long long b, long long &x, long long &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}
long long d,x0,y0;
d=euclid(b,a%b,x0,y0);
x=y0;
y=x0-(a/b)*y0;
return d;
}
long long n,p,a,b,x,y,d;
int main()
{
in>>n>>p;
d=euclid(n,p,x,y);
while(x<0)
x+=p;
out<<x;
return 0;
}