Cod sursa(job #3299658)

Utilizator Tuduce_RobertTuduce Robert Florin Tuduce_Robert Data 9 iunie 2025 01:21:14
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>
#include <stdlib.h>
#include <math.h>


long long ridicare(long long baza, long long putere, long long mod)
{
    long long rezultat = 1;
    baza %= mod;
    while(putere > 0) {
        if(putere % 2 == 1)
            rezultat = (rezultat * baza) % mod;
        baza = (baza * baza) % mod;
        putere /= 2;
    }
    return rezultat;
}

int main()
{
    FILE *fin, *fout;
    fin = fopen("lgput.in","r");
    fout = fopen("lgput.out","w");
    long long x, y;
    long long z = 1999999973;
    fscanf(fin,"%lld",&x);
    fscanf(fin,"%lld",&y);
    fprintf(fout,"%lld",ridicare(x,y,z));
    fclose(fin);
    fclose(fout);
}