Cod sursa(job #919093)

Utilizator h2g2Ford Prefect h2g2 Data 19 martie 2013 12:59:56
Problema Invers modular Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>
using namespace std;

int a, n, y = 0, p, mod;

//n^p        % mod

long long solve(int exponent) {
    int jumatate = exponent / 2;

    if(exponent == 0) return 1;
    if(exponent == 1) return (n % mod);

    long long sol;
    sol = (solve(jumatate) * solve(jumatate)) % mod;
    if(exponent % 2 == 1) sol = (sol * n) % mod;

    return sol % mod;
}

int main() {
    ifstream f("inversmodular.in");
    ofstream g("inversmodular.out");

    f>>n>>p;

    mod = p;

    y = solve(p-2);

    g<<y<<"\n";
    cout<<y<<"\n";

    return 0;
}