Cod sursa(job #3134802)

Utilizator Bran_Eduard_DenisBran Eduard Denis Bran_Eduard_Denis Data 30 mai 2023 23:41:41
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.61 kb
//
//  main.c
//  ridicare_putere_log
//
//  Created by Bran Eduard Denis on 30.05.2023.
//

#include <stdio.h>
#include <stdlib.h>

long long int putere(long long int x, long long int n)
{
    if(n<0)
        return putere(1/x,(-1)*n);
    if(n==0)
        return 1;
    if(n%2==0)
        return putere(x*x%1999999973,n/2);
    else
        return (putere(x*x%1999999973,n/2)*x)%1999999973;
}

int main() {
    long long int N;
    long long int P;
    FILE*f;
    f=fopen("lgput.in","rt");
    fscanf(f,"%lld %lld",&N,&P);
    f=fopen("lgput.out","wt");
    fprintf(f,"%lld",putere(N,P));
    fclose(f);
    return 0;
}