Cod sursa(job #2759211)

Utilizator alex.prohnitchiAlex Prohnitchi alex.prohnitchi Data 16 iunie 2021 10:16:19
Problema Invers modular Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>

typedef long long ll;

const ll mod=1e9+7;

const int dx[] = {0, 1, 0, -1};
const int dy[] = {1, 0, -1, 0};

#define all(x) x.begin(),x.end()
#define allr(x) x.rbegin(),x.rend()
#define rc(x)  return cout<<x<<"\n",0
#define sz(s)  (int) s.size()
#define pb push_back
#define mp make_pair
#define fr first
#define sc second
#define PI 3.14159265358979

using namespace std;

ll t,n;

	
void gcd(ll &x, ll &y, int a, int b)  
{  
     if (b==0)   {
     	x=1;
		y=0; 	
	 } 
     else {             
         gcd(x,y,b,a % b);
         ll aux=x;
         x=y;
         y=aux-y*(a/b);
     }
}

int main() {
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	ifstream fin("inversmodular.in");
	ofstream fout("inversmodular.out");
	ll a,n;
	fin >> a >> n;
	ll inv=0,d,ins;
	gcd(inv,ins,a,n);
	if (inv<=0)inv=n+inv%n;
	fout << inv << '\n';
}