Cod sursa(job #2352581)

Utilizator Senth30Denis-Florin Cringanu Senth30 Data 23 februarie 2019 14:08:50
Problema Invers modular Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <bits/stdc++.h>

using namespace std;

long long N, K, rest;

long long lgput(long long x, long long n){
    if(n == 0)
        return 1;
    else {
        if(n == 1)
            return x % K;
        else {
            if(n % 2 == 0)
                return lgput(x * x % K, n / 2) % K;
            else
                return x * lgput(x * x % K, (n - 1) / 2) % K;
        }
    }
}

int main(){

    freopen("inversmodular.in", "r", stdin);
    freopen("inversmodular.out", "w", stdout);

    scanf("%lld%lld", &N, &K);

    printf("%lld", lgput(N, N));

    return 0;
}