Cod sursa(job #3262389)

Utilizator tryharderulbrebenel mihnea stefan tryharderul Data 9 decembrie 2024 23:31:32
Problema Invers modular Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
 #include <bits/stdc++.h>
 
 using namespace std;
 
 int main() {

	ifstream in("inversmodular.in");
	ofstream out("inversmodular.out");

	int n, mod;
	in >> n >> mod;

	function<void(long long&, long long&, int, int)> extended_gcd = [&](long long &x, long long &y, int a, int b) {
		if(!b) {
			x = 1; y = 0;
		} else {
			extended_gcd(x, y, b, a%b);
			long long aux = x;
			x = y;
			y = aux - 1LL * y * (a / b);
		}
	};

	long long inv = 0, ins = 0;
	extended_gcd(inv, ins, n, mod);

	if(inv <= 0) {
		inv = n + inv % n;
	}

	out << inv << '\n';

	return 0;
 }