Cod sursa(job #718025)

Utilizator PetcuIoanPetcu Ioan Vlad PetcuIoan Data 20 martie 2012 13:55:40
Problema Invers modular Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<stdio.h>
#include<assert.h>

#include<algorithm>
#include<vector>

using namespace std;

int a, n, sol, mod;

void read(){
  assert(freopen("inversmodular.in", "r", stdin) != NULL);
  scanf("%d%d", &a, &n);
}

long long lg_put(int x,int pow){
  if(pow == 1)
    return x;
  return (lg_put(x,pow / 2) * lg_put(x,pow - pow / 2)) % mod;
}

void solve(){
  mod = n;
  sol = lg_put(a,n - 2);
}

void write(){
  assert(freopen("inversmodular.out", "w", stdout) != NULL);
  printf("%d",sol);
}

int main(){
  read();
  solve();
  write();
  return 0;
}