Cod sursa(job #3357123)

Utilizator Olariu_MarioOlariu Mario Andrei Olariu_Mario Data 6 iunie 2026 15:04:45
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    FILE *file = fopen("lgput.in", "r");
    if (file == NULL) {
        fprintf(stderr, "Eroare deschidere fisier intrare.\n");
        return 1;
    }
    FILE *output = fopen("lgput.out", "w");
    if (output == NULL) {
        fprintf(stderr, "Eroare deschidere fisier iesire.\n");
        fclose(file);
        return 1;
    }
    long long n, p;
    long long a;
    long long rezultat=1;
    fscanf(file, "%lld %lld", &n, &p);
    a = n%1999999973;
    while (p > 0)
    {
        if(p%2==1)
        {
            rezultat=rezultat*a;
            rezultat=rezultat%1999999973;
        }
        a=a*a;
        a=a%1999999973;
        p=p/2;
    }
    printf("%lld\n", a);
    fprintf(output, "%lld\n", rezultat);
    fclose(file);
    fclose(output);
    return 0;
}