Cod sursa(job #3357812)

Utilizator poenar_rares_emanuelPoenar Rares Emanuel poenar_rares_emanuel Data 13 iunie 2026 15:10:34
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>


unsigned long long putere(unsigned long long baza, unsigned long long exponent, unsigned long long mod){

    unsigned long long rezultat=1;
    baza=baza%mod;

    while(exponent>0){
        if(exponent%2==1){
            rezultat=(rezultat*baza)%mod;
        }
        baza=(baza*baza)%mod;
        exponent=exponent/2;
    }

    return rezultat;
}

int main(){

    FILE *fin=fopen("lgput.in","r");
    FILE *fout=fopen("lgput.out","w");

    unsigned long long N,P;
    fscanf(fin,"%llu %llu",&N,&P);

    const unsigned long long MOD=1999999973ULL;

    unsigned long long rezultat=putere(N,P,MOD);

    fprintf(fout,"%llu\n",rezultat);

    fclose(fin);
    fclose(fout);

    return 0;
}