Cod sursa(job #3225616)

Utilizator uncle_sam_007IOAN BULICA uncle_sam_007 Data 18 aprilie 2024 10:27:03
Problema Invers modular Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#include <cmath>

using namespace std;

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

#define LL long long

LL Phi(LL nr)
{
	LL cur = nr;
	for(LL i = 2;i * i <= nr; ++i)
	{
		if (nr % i == 0)
		{
			while(nr % i == 0)
                nr /= i;
			cur = (cur / i) * (i - 1);
		}
	}
    if (nr != 1)
        cur = cur / nr * (nr - 1);
    return cur;
}

long long MOD;

int Putere(int A , int n)
{
    if(n == 0)
        return 1;
    if(n % 2 == 1)
        return A * Putere(A , n - 1);
    int P = Putere(A , n / 2);
    return P * P;
}


int main()
{
    long long n;
    fin>>n>>MOD;
    LL x;
    x=Phi(n);
    fout<<(LL)pow(n,x-1)%MOD;
    return 0;
}