Cod sursa(job #2253176)

Utilizator mateisirghemateisirghe mateisirghe Data 3 octombrie 2018 18:48:52
Problema Invers modular Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int euler(int n)
{
    return (n - 1);
}

int putere(int a, int n, int m)
{
    int p = 1;
    do
    {
        if (n % 2 != 0)
        {
            p = (long long)p * a % m;
        }
        a = (long long)a * a % m;
        n /= 2;
    }
    while (n != 0);
    return p;
}

int main(){
    int a, n, x;
    in >> a >> n;
    in.close();
    x = putere(a, euler(n) - 1, n);
    out << x;
    out.close();
    return 0;
}