Cod sursa(job #2453523)

Utilizator TheGodFather2131Alexandru Miclea TheGodFather2131 Data 4 septembrie 2019 12:05:22
Problema Invers modular Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
//ALEXANDRU MICLEA

#include <vector>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <set>
#include <unordered_map>
#include <time.h>
#include <iomanip>
#include <deque>
#include <math.h>
#include <cmath>
#include <assert.h>
#include <stack>
#include <bitset>
#include <random>
#include <chrono>

using namespace std;

#include <fstream>
ifstream cin("inversmodular.in"); ofstream cout("inversmodular.out");



/*int phi(int n) {
	for (int i = 2; i * i <= n; i++) {
		if (n % i) {
			c++;
		}
	}
}*/

long long lgput(long long n, long long p, long long mod) {
	long long ans=1;
	while (p) {
		if (p % 2) {
			ans *= n;
			ans = ans % mod;
		}
		n *= n;
		n = n % mod;
		p /= 2;
	}
	return ans;
}

int main() {

	long long a, n, ans;
	cin >> a >> n;
	ans = lgput(a, n - 2, n);
	cout << ans % n;
	return 0;
}