Cod sursa(job #3295802)

Utilizator CosminM12Murariu Rusalin - Cosmin CosminM12 Data 8 mai 2025 15:22:39
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>

#define MOD 1999999973

unsigned long long logexp(unsigned long long n, unsigned long long p) {
    if(p == 0) {
        return 1;
    }
    if(p == 1) {
        return n;
    }
    if(p % 2 == 0) {
        return logexp((n*n) % MOD, p>>1);
    }
    
    return (n * logexp((n * n) % MOD, p>>1))% MOD;
}



int main() {
    FILE* input;
    FILE* output;

    unsigned int n, p;

    input = fopen("lgput.in","r");
    output = fopen("lgput.out","w");

    fscanf(input, "%d %d", &n, &p);

    fprintf(output, "%lld", logexp(n, p));

    fclose(input);
    fclose(output);
    return 0;
}