Pagini recente » Cod sursa (job #2436690) | Cod sursa (job #2539858) | Cod sursa (job #2790797) | Cod sursa (job #1872373) | Cod sursa (job #1340527)
#include <fstream>
using namespace std;
void euclid(long x, long * y, long n, long * m);
int main(){
ifstream in("inversmodular.in");
long x, y, n, m;
in >> x >> n;
euclid(x, &y, n, &m);
ofstream out("inversmodular.out");
while (y < 0)
y += n;
out << y;
return 0;
}
void euclid(long x, long * y, long n, long * m){
if (x == 0){
*y = 0;
*m = 1;
}
else{
long y0, m0;
euclid(n % x, &y0, x, &m0);
*m = y0;
*y = m0 - (n - (n % x)) / x * y0;
}
}